重新安裝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有興趣的朋友有所幫助。