本文只针对于mysql版本为5.6.25版本,别的版本没有实践,只提供一般的解决办法。
一般先检查数据库的字符编码,
登陆:mysql -uroot -p你的密码
然后输入:show variables like '%character%'; 查看数据库的编码。
接下来就是修改之路:
mysql数据库是5.6版本的,可以按照如下步骤去操作:
第一步:在命令行输入如下命令去查找后缀名为 .cnf 的文件
find / -iname '*.cnf' -print
会查到如下文件:每个电脑不一样,但有主要的文件就可以咯,我的电脑只有:
usr/my.cnf
/usr/share/mysql/my-default.cnf
/usr/share/doc/MySQL-server-5.6.25/my-default.cnf
/etc/pki/tls/openssl.cnf
/var/lib/mysql/auto.cnf
第二步:把my-default.cnf拷贝到 /etc/my.cnf
命令:cp /usr/share/doc/MySQL-server-5.6.25/my-default.cnf /etc/my.cnf
含义:/usr/share/doc/MySQL-server-5.6.25/my-default.cnf 拷贝到/etc下 并命名为:my.cnf
第三步:打开该文件,命令如下,然后在里面添加相应的字符集
vi /etc/my.cnf
接着点击 i 进如编辑模式
然后:在[mysqld]上边添加
[client]
default-character-set=utf8
在[mysqld]下边添加:
character-set-server=utf8
接着 按 esc 接着输入 :wq 保存退出。
第四步:重启mysql 服务:命令:service mysqld restart
第五步:重新查看字符编码就会发现已经改变了。
show variables like '%character%';
如果mysql版本不是5.6.25那么就可以按照如下步骤去执行:
第一步:在命令行输入如下命令去查找后缀名为 .cnf 的文件
find / -iname '*.cnf' -print
会查到如下的目录:(每个人的电脑显示的不一样,但是主要文件在就可以)
/etc/my.cnf
/usr/share/mysql/my-small.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/doc/mysql-server-5.5.18/my-small.cnf
/usr/share/doc/mysql-server-5.5.18/my-large.cnf
/usr/share/doc/mysql-server-5.5.18/my-innodb-heavy-4G.cnf
/usr/share/doc/mysql-server-5.5.18/my-huge.cnf
/usr/share/doc/mysql-server-5.5.18/my-medium.cnf
第二步:拷贝my-small.cnf、my-medium.cnf、my-huge.cnf、my-innodb-heavy-4G.cnf 其中一个到 /etc/my.cnf 下
命令如下:cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
含义:把/usr/share/mysql/my-medium.cnf 拷贝到/etc下 并命名为:my.cnf
第三步:打开该文件,命令如下,然后在里面添加相应的字符集
vi /etc/my.cnf
接着点击 i 进如编辑模式
在[client]下添加
default-charater-set=utf8
在[mysqld]下添加
collation_server = utf8_general_ci
character_set_server = utf8
接着 按 esc 接着输入 :wq 保存退出。
第四步:重启mysql 服务:命令:service mysqld restart
第五步:重新查看字符编码就会发现已经改变了。
show variables like '%character%';
需要说明的是:如果是基于之前的编码创建的数据库,估计插入中文输入还是会发生中文乱码问题,可以把之前的数据库删掉,然后重新创建数据库,并指定字符编码为UTF-8。