MySQL 脚本执行乱码问题
在使用source
执行MySQL 脚本时,需要注意 编码一致性问题
以UTF-8
编码为例:
首先,要求脚本文件的编码必须为 UTF-8
;
其次,要求数据库的编码为 UTF-8
编码;
然后,要求 脚本链接客户端的编码也必须为 UTF-8
;
检查 数据库编码 命令如下
show variables like 'character%'
注意:如需查看指定数据库的编码,须先使用use databaseName
命令选择数据库。
Variable_name | Value |
---|---|
character_set_client | latin1 |
character_set_connection | latin1 |
character_set_database | latin1 |
character_set_filesystem | binary |
character_set_results | latin1 |
character_set_server | latin1 |
character_set_system | utf8 |
character_sets_dir | /usr/share/mysql/charsets/ |
这里需要关注的是 character_set_client (客户端请求数据的字符集)、character_set_connection (客户机与服务器连接的字符集)、character_set_results (返回给客户端的字符集) 和 character_set_database (数据库本身的字符集)
从返回结果看,需要通过 set
命令修改相关字符集为utf8
编码
set character_set_client = ‘utf8’;
set character_set_connection = ‘utf8’;
set character_set_results = ‘utf8’;