解决 ubuntu mysql 中文乱码

来源:互联网 发布:淘宝颜色分类图片大小 编辑:程序博客网 时间:2024/05/20 23:57


mysql配置文件更改:

ubuntu:/etc/mysql/my.cnf

[mysqld] 
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake


重启服务

sudo /etc/init.d/mysql restart

执行命令mysql

mysql> show variables like "%character%";show variables like "%collation%";

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database   | utf8_unicode_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+

如果还是中文乱码,可能是数据库建立的时候使用的是默认编码latin

用一下语句可以更改字段的编码:

ALTER TABLE `${table}` CHANGE `${column}` `${column}` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL 

其他:

1.修改库的编码: ALTER DATABASE `${db}` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
2.修改表的编码:ALTER TABLE `${table}` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin 

${table},${column},${db} 这个是什么你们懂得


原创粉丝点击