如何将utf-8设置为mysql服务器的标准字符集?

dgA*_*ien 7 mysql mysql-management utf-8 character-encoding

我必须重新编译吗?

我想出了设置字符集值的不同方法

http://dev.mysql.com/doc/refman/5.5/en/charset.html

但是用其他值或my.cnf设置启动它什么都没改变.因为如果我这样做:

sudo mysqld --verbose --help | grep charact

它总是回答我latin1作为标准charset.系统是ubuntu lts服务器,带有标准的mysql安装.

dgA*_*ien 6

解:

将此添加到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
Run Code Online (Sandbox Code Playgroud)

  • 看起来[mysqld]部分中不再允许使用default-character-set (4认同)
  • `default-character-set = utf8`它导致服务器无法启动,因为日志上的错误正在说明. (2认同)

Qui*_*que 5

[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
Run Code Online (Sandbox Code Playgroud)

更新:现在你应该使用utf8mb4.