/etc/mysql/my.cnf
[mysqld]
character_set_server = utf8
collation-server = utf8_unicode_ci
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
skip-character-set-client-handshake
[client]
default-character-set = utf8
重启服务,查看:
show variables like '%character%';
得到
New client character set: latin1
Connected.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/
还有一种方法,重新编译libmysqlclient, 加-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci 参数。但我没有实验是否有效。
cmake \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DWITH_EXTRA_CHARSETS=complex \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=1 \