Linux下安装的mysql数据库插入中文乱码或sql查询语句条件中有中文查不到数据

来源:互联网 发布:淘宝外卖优惠券怎么领 编辑:程序博客网 时间:2024/05/16 09:26

问题描述:Linux下的mysql数据库表中插入中文乱码,或sql查询语句条件中有中文查不到数据,但是数据表中已有的中文读取出来不乱码

解决方法如下,我在网上找了别人的解决方法,并整理了出来.

首先在登录mysql的情况向使用 show variables like ‘%char%’; 查看下当前编码,发现有的是utf8,有的不是,server和database都不是utf8,而是latin1,


我在网上找解决方法,说可以在mysql的配置文件中修改,文件为/etc/my.cnf.

可是在/etc 目录下找不到my.cnf 配置文件。最后查明了原因:

1、本机的mysql版本是5.6的,5.6及以上配置文件是my-default.conf ,5.5及以下版本为 my.cnf

2、本机的mysql安装包是rpm的,所以不会自带my.cnf 或者my-defaule.cnf

找到这两个原因就好解决了,从mysql的安装目录复制一份my-default.cnf 文件到 /etc/my.cnf

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

(或者自己在etc下新建一个也行,添加下如下内容)

接着下一步修改my.cnf 文件配置如下(没有就加上):

#/etc/my.cnf [client]default-character-set=utf8 [mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0#default-character-set=utf8character-set-server=utf8init_connect='SET NAMES utf8' [mysql]no-auto-rehashdefault-character-set=utf8 [mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid


:wq!

保存后,重启mysql服务:service mysql restart

重启成功后,使用 mysql -u root -p 登录客户端后,再查一下字符集:


看到字符集已经改了,

创建一个数据库和数据表,插入一条中文数据,发现没问题了。

阅读全文
0 0
原创粉丝点击