当使用django数据库工具向数据库新增实例时,报了1366这个错误,主要是由于数据库在创建时编码格式不是utf-8导致的,在你新增的实例中出现中文字符,就会报这个错误,看了很多博客后总结解决方法如下
- 首先你可以在命令行输入以下指令查看数据库的编码格式
- mysql> show create database 数据库名;
mysql> show create database pydb;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| pydb | CREATE DATABASE `pydb` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
发现character_set_database 编码是latin1不是utf8,再去查一下表的编码也都不是utf-8
在这里输入指令修改数据库编码 把这里面的pydb替换成你要修改的数据库名
alter database pydb default character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.01 sec) #证明成功了
然后打开删除整个数据库的所有表
drop table 表名;
然后重新迁移表文件
(dj-pro) *******MacBook-Pro:djpro ****$ python manage.py migrate
结束