不管是Linux还是Windows都有新手遇到MySQL服务安装好了之后写入中文发现乱码,今天我装了个CentOS 6.5也遇到了这个问题,现在解决了,分享一下经验。
1.首先安装mysql,我很怕麻烦。。所以全给安装了一下,不管那么多依赖关系了,省心。
yum install -y mysql-server mysql mysql-devel
2.安装好了之后,启动看下是什么情况
service mysqld start
3.没啥问题,设置一下root密码,一开始root是没有密码的,所以我直接设置密码为123456
mysqladmin -u root password '123456'
4.登录进mysql看看是个什么情况。
mysql -u root -p
5.看下mysql的编码,发现不全是utf8,有Latin的,这是中文乱码的根源。
show variables like 'character%';
6.关闭mysql服务,准备开始修改my.cnf文件
service mysqld stop
vi /etc/my.cnf
7.看了网络上很多版本的my.cnf的修改方式,我索性就全给改成了utf8,我的my.cnf文件是这样的。
[mysqld]
default-character-set = utf8 #这个是我添加的
character_set_server=utf8 #这个是我添加的
init_connect='SET NAMES utf8'
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
[mysqld_safe]
default-character-set = utf8 #这个是我添加的
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
default-character-set = utf8 #这个是我添加的
[mysql.server]
default-character-set = utf8 #这个是我添加的
[mysql]
default-character-set = utf8 #这个是我添加的
8.修改了my.cnf文件之后一定要重启mysql服务,这是必须的。
service mysqld restart
9.再进去mysql查看编码会发都变成了utf8,除了character_set_filesystem 是binary 。