错误场景
当我使用pycharm写测试程序运行的时候, 会自动创建一个test_<database>
数据库, 但是每次创建的时候都会报错
报错信息
MySQLdb._exceptions.OperationalError: (1366, "Incorrect string value: '\\xE7\\x94\\xA8\\xE6\\x88\\xB7' for column 'name' at row 1")
出现这个的原因是因为数据库编码的问题
解决问题
1. 修改数据库编码
1.1 Linux系统
vim /etc/my.cnf
- 添加如下信息
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
1.2 Windows系统
修改MySQL路径下的my.ini文件
- 同样添加如下信息
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
2. 重启数据库
sudo service mysqld restart
# 或者
sudo systemctl restart mysqld
- windows 可以在"服务"中重启mysql
3. 修改查看数据库编码
mysql> show variables like 'character%';