mysql 5.5.50 解压版安装完成后输入中文乱码,于是查看了下客户端和服务端字符集:
mysql> show variables like '%colla%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
mysql> show variables like '%char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| 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 | G:\mysql-5.5.50-winx64\share\charsets\ |
+--------------------------+----------------------------------------+
8 rows in set (0.00 sec)
本来之前在my.ini [mysqld] 和 [client] 下面已经设置了字符集了怎么没起作用呢?后来在网上查到5.5 版本之后的字符集设置方式不同于5.5 之前的版本; 5.5之后的版本
[client]
#设置客户端字符集
default-character-set = utf8
[mysqld]
#设置字符集为utf8
#loose-default-character-set = utf8
default-storage-engine = INNODB
character-set-server = utf8
collation-server = utf8_general_ci
设置完成后重启mysql 新建表依旧没有效果,重新建立一个数据库后再新建表就好了。
设置完成后的字符集
mysql> show variables like '%colla%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
mysql> show variables like '%char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| 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 | G:\mysql-5.5.50-winx64\share\charsets\ |
+--------------------------+----------------------------------------+
8 rows in set (0.00 sec)
附:mysql 5.5 之前版本字符集设置方式
[client]
default-character-set = utf8
[mysqld]
character_set_server=utf8