我必须重新编译它吗?
我想出了设置字符集值的不同方法,请参阅
http://dev.mysql.com/doc/refman/5.5/en/charset.html
但是以其他值或 my.cnf 设置开始它没有任何改变。因为如果我这样做:
sudo mysqld --verbose --help | grep 字符
它总是回答我 latin1 作为标准字符集。该系统是带有标准 mysql 安装的 ubuntu lts 服务器。
我必须重新编译它吗?
我想出了设置字符集值的不同方法,请参阅
http://dev.mysql.com/doc/refman/5.5/en/charset.html
但是以其他值或 my.cnf 设置开始它没有任何改变。因为如果我这样做:
sudo mysqld --verbose --help | grep 字符
它总是回答我 latin1 作为标准字符集。该系统是带有标准 mysql 安装的 ubuntu lts 服务器。
将此添加到 my.cnf 中:
[mysqld]
character-set-server=utf8
character-sets-dir=/usr/share/mysql/charsets
default-character-set=utf8
[mysql]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqladmin]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqlcheck]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqldump]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqlimport]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
[mysqlshow]
character-sets-dir=/usr/share/mysql/charsets default-character-set=utf8
#end
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
skip-character-set-client-handshake
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
更新:现在你可能应该使用 utf8mb4。
创建文件/etc/mysql/conf.d/mysqld.cnf的内容:
[mysqld]
character-set-server = utf8
collation-server = utf8_unicode_ci
如果您省略 collat ion-server它应该设置为utf8_general_ci。
我已经在 Ubuntu 15.04 上使用 MySQL 5.6 测试了这个配置。