Linux操作系统 Mysql报错 中文乱码 无法识别中文字符

使用spoon工具表输出到虚拟机mysql报错:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '??ID VARCHAR(6)' at line 1

分析其原因为mysql默认编码格式识别不出来中文字符,然后将其替换为问号导致sql语句报错。

可以通过修改MySQL数据库默认编码格式来尝试解决。

修改文件server.cnf

sudo vim /etc/my.cnf.d/server.cnf

添加以下内容到 [mysqld]下

character_set_client = utf8
collation-server = utf8_general_ci
character_set_server = utf8

重启mysql服务使其生效

sudo service mysql restart

在mysql中查看默认编码格式和排序规则

SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';

查询结果

使用spoon发送处理数据到mysql

查询结果 

此时mysql可以识别utf8编码格式的文件。

文章参考:Windows中MySQL无法插入或识别中文字符的问题及解决方案 

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用提到,MySQLLinux安装时可能会出现错误代码1140。根据我的了解,错误代码1140在MySQL通常是指权限问题。当用户尝试执行某些需要特定权限的操作时,MySQL会返回这个错误代码。 具体来说,如果用户没有足够的权限来执行某个操作,比如创建数据库或者修改表结构,MySQL会返回错误代码1140。这个错误通常会伴随着一个错误信息,用来指示具体的权限问题。 根据引用和引用[3]的内容,这个错误可能是由于MySQL的配置问题导致的。引用提到,MySQL的默认socket文件路径是/var/lib/mysql/mysql.sock,但是Linux系统通常会去/tmp/mysql.sock的路径查找。如果找不到这个socket文件,系统就会报错。 为了解决这个问题,你可以尝试以下几个步骤: 1. 确保MySQL服务已经正确安装并正在运行。你可以使用命令`systemctl status mysql`来检查MySQL的运行状态。 2. 检查MySQL配置文件socket文件的路径是否正确。你可以在MySQL的配置文件查找socket选项,并确保其指向正确的路径。配置文件通常位于/etc/mysql/mysql.conf.d目录下。 3. 如果上述步骤都没有解决问题,你可以手动创建一个软链接,将MySQL的socket文件链接到/tmp/mysql.sock的路径。你可以使用以下命令来创建软链接: ``` sudo ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock ``` 这样,当系统在/tmp/mysql.sock路径查找socket文件时,就会找到真实的socket文件。 希望这些步骤能帮助你解决MySQL报错1140的问题。如果问题仍然存在,我建议你查看MySQL的错误日志文件,以获取更详细的错误信息来帮助定位问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值