我试图通过my.cnf更改我们的 MySQL 的字符集,但失败了。我添加了下面列出的字符集设置:
# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
# ------------- MYSQL CHARSETS --------------
character_set_system = utf8
character_set_server = utf8
character_set_results = utf8
character_set_database = utf8
character_set_connection = utf8
character_set_client = utf8
collation_connection = utf8_general_ci
collation_database = utf8_general_ci
collation_server = utf8_general_ci
Run Code Online (Sandbox Code Playgroud)
当我启用这些时,MySQL 无法启动。我怎样才能确保一切都默认为 utf8 - 总是?
更新
仍然有一些地方在成为 UTF8 方面存在问题
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
collation_connection utf8_general_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci
Run Code Online (Sandbox Code Playgroud)
不幸的是我还没有想出一个解决方案......有什么想法吗?
目前我正在成功使用此配置:
[mysqld]
default-character-set = utf8
init-connect='SET NAMES utf8'
character-set-server = utf8
[mysql]
default-character-set = utf8
Run Code Online (Sandbox Code Playgroud)
但是 PHPMyAdmin 仍然显示一些 latin1
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
collation_connection utf8_general_ci
collation_database latin1_swedish_ci
collation_server latin1_swedish_ci
Run Code Online (Sandbox Code Playgroud)
小智 24
您需要将以下内容合并到您的 my.cnf 文件中
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set = utf8
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
Run Code Online (Sandbox Code Playgroud)
您可以在以下手册页上找到更多信息
http://dev.mysql.com/doc/refman/5.6/en/charset-configuration.html
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_character_set_system
http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_character_set_server
针对 Mark 的回答,如果您需要将现有表/数据库转换为正确的字符集,您将需要一个合适的ALTER查询。类似于以下内容:
ALTER TABLE `table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Run Code Online (Sandbox Code Playgroud)
另外还有一个很大的PHP脚本在这里它会为你。
| 归档时间: |
|
| 查看次数: |
75024 次 |
| 最近记录: |