转自:https://blog.csdn.net/happy_bigqiang/article/details/51170761
1 ,先切换为root用户权限,再以下命令: vim /etc/mysql/my.cnf #进入配置文件
2,做以下修改:
在[client]下追加:
default-character-set=utf8
- 1
在[mysqld]下追加:
character_set_server =utf8 #1
collation-server=utf8_general_ci
- 1
- 2
千万注意#1处代码不是default-character-set=utf8,很多网上不靠谱教程乱说,如果写成其他会导致phpMySQL无法登录,phpMySQL产生如下报错:
2002 无法登录 MySQL 服务器
而且此时根本无法启动MySQL,重启MySQL命令也报Fail。网上教程解决这种报错完全不对口,浪费博主时间。推荐这篇靠谱:
http://www.111cn.net/sys/Ubuntu/53733.html
3 ,如果按正确修改此时可以顺利重启MySQL:
/etc/init.d/mysql restart
- 1
4,查看mysql编码是否修改成功,登录mysql,再输入命令:
show variables like '%character%';
- 1
做了以上设置后再创建数据库默认编码就是utf8了
可以先use 数据库, 让后用以下指令查看数据库编码
show variables like 'character_set_database';
也可以直接创建数据库时指定默认字符集
create database DATABASE_NAME default character set utf8;
对于已存在的数据库,可用修改数据库编码
alter database DATABASE_NAME CHARACTER SET utf8;
mysql> use stu; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show variables like 'character_set_database'; +------------------------+--------+ | Variable_name | Value | +------------------------+--------+ | character_set_database | latin1 | +------------------------+--------+ 1 row in set (0.00 sec) mysql> alter database stu character set utf8; Query OK, 1 row affected (0.00 sec) mysql> show variables like 'character_set_database'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | character_set_database | utf8 | +------------------------+-------+ 1 row in set (0.00 sec)