mysql版本为5.5
启动mysql
在数据库中插入一条带中文数据发现:
±—±-----+
| id | name |
±—±-----+
| 1 | ?? |
±—±-----+
中文乱码
使用show variables like ‘%character%’;命令查看字符集发现
±-------------------------±---------------------------+
| Variable_name | Value |
±-------------------------±---------------------------+
| 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/ |
±-------------------------±---------------------------+
character_set_database;character_set_server为atin1
需要修改为字符编码utf8才可以使数据库中的中文数据不是乱码
将 my-huge.cnf 拷贝到 /etc/my.cof
编写配置文件修改mysql默认字符集
如下:
# 在相应代码片段中添加如下代码
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8
重启mysql 使用 show variables like ‘%character%’;发现字符集并没有修改过来。
排查问题发现配置文件在赋值到etc目录下的时候文件名写错了,应该为my.cnf。
在上面赋值的时候错误的写成了 my.cof
改好后重新启动
±-------------------------±---------------------------+
| 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 | /usr/share/mysql/charsets/ |
±-------------------------±---------------------------+
使用show variables like ‘%character%’;命令查看字符集发现
character_set_database;character_set_server 改为utr8
以此错误记录提醒自己:
1.一个错误发生后,每当你找不到错误原因时,往往错误就是最简单的最常见的地方。(灯下黑)
2.虽然是一个很小的错误,但是作为一个码农,写错一个字母那也是错了,错误不分大小。