mysql - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and ...
迷茫
迷茫 2017-04-17 15:33:46
[MySQL讨论组]

在我的代码里有一项写入数据库的操作(使用了 flask-sqlalchemy 和 pymysql)

new_course = Course(course_name=form.course_name.data,
                                course_code=form.course_code.data,
                                file_count=0)

前一个字段可以是汉字,第二个字段必须是字母加数字组合。

然后在网站运行的时候遇到了这个错误:

(1267, u"Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")

按照别人的说法我更改了几个字段的编码

mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

mysql> set character_set_database =utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_results =utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_server =utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> set character_set_system =utf8;
ERROR 1238 (HY000): Variable 'character_set_system' is a read only variable
mysql> SET collation_server = utf8_general_ci;
Query OK, 0 rows affected (0.00 sec)

mysql> SET collation_database = utf8_general_ci;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

然而在我 exit 并重新运行网站后,这个问题还会出现,重新查看编码的时候发现编码又被改回去了,这是为什么?我需要重建数据库吗,如果需要的话应当怎么做?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号