版权声明:本文为博主原创文章,网络精神,欢迎转载。如果转载,请注明出处。 https://blog.csdn.net/zhangyl03/article/details/52437235
MySQL默认字符集为latin,若要正确显示中文,需要将字符集更改未utf8。修改字符集在ubuntu14和ubuntu16下略有不同。
Ubuntu14下修改MySQL字符集
编辑配置文件my.cnf
$sudo vim /etc/mysql/my.cnf
[client]
default-character-set=utf8 #增加这一行,指定字符集
port = 3306
socket = /var/run/mysqld/mysqld.sock
.............
[mysqld]
character_set_server=utf8 #增加这一行,指定字符集
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
修改后,重启服务即可。
sudo /etc/init.d/mysql restart
查看字符集,所有的database的字符集应该就变成utf8了。
mysql> show variables like '%char%';
Ubuntu16下修改MySQL字符集
与Ubuntu14略有不同,主要是几个文件所在位置不同。修改方法如下:
1 修改mysql的配置文件
sudo vim /etc/mysql/conf.d/mysql.cnf
在[mysql]的下方加入如下语句。(注:这个文件下没有配置,只有【mysql】)
no-auto-rehash default-character-set=utf8
/etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]下加入
socket = /var/run/mysqld/mysqld.sock port = 3306 character-set-server=utf8 (这里是server,之前有的版本是set)
重启mysql:
sudo /etc/init.d/mysql restart
查看字符集
mysql> show variables like '%char%';
如果出现某个表未改过来的情况则需要更改数据库编码:需要在
mysql下进行修改。有两种方法, 第一种是一次搞定, 第二种只对当前连接有效,断开连接,恢复更改前状态。
方法1:
alter database 数据库名 charset utf8
方法2:
set character_set_database = utf8