Ubuntu下mysql解决中文乱码

来源:互联网 发布:编程项目 编辑:程序博客网 时间:2024/05/11 09:23

Ubuntu下mysql解决中文乱码

一、修改配置文件 /etc/mysql/my.cnf

sudo vi /etc/mysql/my.cnf
在[client] [mysqld_safe] [mysqld]下分别加入
[client]
default-character-set=utf8

[mysqld_safe]
default-character-set=utf8

[mysqld]
character-set-server=utf8
init_connect='SET NAMES utf8'

二、修改数据库、表、字段的字符集为utf-8

查看当前mysql的字符集设置:使用SQL语句SHOW VARIABLES LIKE 'character_set_%';  

修改数据库字符集:

ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];

把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:

ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

只是修改表的默认字符集:

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

修改字段的字符集:

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

!!!注意:如果字段的字符集和表、数据库的字符集不一致,远程连接时容易出现错误:“1267 Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) ”

三、重启mysql服务

sudo service mysql restart
或者:sudo /etc/init.d/msql restart
0 0
原创粉丝点击