用python3.6.5創建mysql庫時出現如下報錯,雖然報錯,但是數據庫可以插入成功。
D:\python3\lib\site-packages\pymysql\cursors.py:170: Warning: (3719, "'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.") result = self._query(query)
解決方法
- python版本:3.6.5
- mysql版本: 8.0.12
1. 首先查看下mysql字符集
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'; +--------------------------+--------------------+ | Variable_name | Value | +--------------------------+--------------------+ | character_set_client | gbk | | character_set_connection | gbk | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | gbk | | character_set_server | utf8mb4 | | character_set_system | utf8 | | collation_connection | gbk_chinese_ci | | collation_database | utf8mb4_0900_ai_ci | | collation_server | utf8mb4_0900_ai_ci | +--------------------------+--------------------+ 10 rows in set, 1 warning (0.04 sec)
2. 根據上述查詢結果,修改sql語句
修改前 = 'CREATE DATABASE IF NOT EXISTS database_name DEFAULT CHARSET utf8 COLLATE utf8_general_ci;' 修改后 = 'CREATE DATABASE IF NOT EXISTS database_name DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci;'
DEFAULT CHARSET utf8 COLLATE utf8_general_ci 是之前老版sql的寫法。
代碼執行創建成功~(๑•̀ㅂ•́)و✧

相關知識補充
UTF8MB4與UTF8MB3的區別介紹:https://dev.mysql.com/doc/refman/5.6/en/charset-unicode-utf8mb4.html
