問題提出
昨天在運行django
時,初始化使用的是自帶的數據庫,后來更換mysql
數據庫,數據庫同步之后,打開mysql
無法添加數據,插入數據時,提示django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE7\\x94\\xA8\\xE6\\x88\\xB7' for column 'name' at row 1")
原因
網上資料說是數據庫的問題,新建數據庫的時候需要指定編碼格式,而在更換mysql
數據庫后,新建數據庫時沒有指定數據庫的編碼格式,所以出現了這個提示問題
解決
首先修改django
中的數據庫配置信息,修改settings.py
配置信息中的TEST
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'HOST':'127.0.0.1',
'PORT':'3306',
'NAME':'guest',
'USER':'root',
'PASSWORD':'111111',
'TEST': {
'CHARSET' : 'utf8',
'COLLATION':'utf8_general_ci'
}
}
}
然后刪除數據庫,重新創建一個新的數據庫,指定編碼格式CREATE DATABASE 數據庫名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
這個時候再次同步數據庫,完成操作。
這兩步操作完成之后,再次插入數據庫信息,OK,創建成功!
不知道大家有沒有更好的辦法呢?