重新安装linux服务器后
运行django,产生了一行数据库错误:
django.db.utils.ProgrammingError: (1146, “Table ‘xxxx.django_migrations’ doesn’t exist”)
用下面的命令查看具体的错误:
python manage.py test -v3 sitecoming
出现如下错误:
django.db.utils.InternalError: (1366, “Incorrect string value: ‘\xE7\x94\xA8\xE6\x88\xB7’ for column ‘name’ at row 1”)
网上查找同类问题,应该是mysql数据编码的问题:
在my.cnf中默认编码改为:utf8
以下是来自网络的解决方法:
- 修改 /etc/my.cnf 配置文件,然后重启mysqld。
在[client]下配置:
default-character-set=utf8
在[mysqld]下配置:
default-character-set=utf8
init_c NAMES utf8′
注意:新版MySQL(如:5.5)或MariaDB等,mysqld启动时可能会遇到“[ERROR] /usr/libexec/mysqld: unknown variable ‘default_character_set=utf8’”的错误;就应该在[mysqld]中用 character_set_server=utf8 替换掉 default_character_set=utf8 。
- 如果还没有解决,那么就得删掉原来建的DB,重新建并制定字符集为utf8,如:
CREATE DATABASE jay_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
以上就介绍了 django中的一个数据库错误 djangodbutilsInternalError: 1366,包括了方面的内容,希望对MySql有兴趣的朋友有所帮助。