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

问题描述: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/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#default-character-set=utf8
character-set-server=utf8
init_connect='SET NAMES utf8'
 
[mysql]
no-auto-rehash
default-character-set=utf8
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


:wq!

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

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


看到字符集已经改了,

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

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值