日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告

發布時間:2023/12/10 数据库 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在學習 Python3 爬蟲關系型數據庫儲存時,利用 pymysql 連接 MySQL 建表,測試用的代碼如下,第一句 SQL 用于獲取當前 MySQL 的版本信息,第二句 SQL 執行創建 spiders 數據庫的操作,如果程序代碼正確,將會輸出 MySQL 的版本信息,并且能查詢到 spiders 數據庫的存在

import pymysqldb = pymysql.connect(host='localhost', user='root', password='000000', port=3306) cursor = db.cursor() cursor.execute('SELECT VERSION()') data = cursor.fetchone() print('Database version:', data) cursor.execute("CREATE DATABASE spiders DEFAULT CHARACTER SET utf8") db.close()

運行程序,確實輸出了 MySQL 的版本信息:Database version: ('8.0.17',),但同時還出現了以下警告:

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)

先查詢一下 spiders 數據庫是否已經創建成功,使用 mysql -u root -p 命令登錄 MySQL,使用 show databases 命令可以查看到 spiders 數據庫已經存在,說明創建成功

然而程序員是講究嚴謹的,即便是已經實現了數據庫的創建,但警告信息同樣也不能放過,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.") 大致看一下應該是編碼上的問題,百度翻譯一下該警告信息:警告:(3719,“utf8”當前是字符集utf8mb3的別名,但在將來的版本中將是utf8mb4的別名。請考慮使用utf8mb4,以便不含糊。”)

解決辦法:將代碼中的 utf8 改為 utf8mb4 后再次運行就沒有警告了!

原理分析:百度了一下,MySQL 中的 utf8 就是 utf8mb3,最大兼容三字節的 unicode 字符,MySQL 在 5.5.3 版本之后增加了 utf8mb4 的編碼,mb4 就是 most bytes 4 的意思,專門用來兼容四字節的 unicode 字符,utf8mb4 是 utf8mb3 的超集,utf8mb3 和 utf8mb4 表示的范圍如下表:

說明mysql utf8 / utf8mb3mysql utf8mb4
max bit34
范圍基本多文種平面 + US-ASCII輔助平面(Supplementary) + 基本多文種平面 + US-ASCII
unicode范圍U+0000 - U+FFFFU+0000 - U+10FFFFF
常見字符英文字母,CJK大部分常用字等CJK非常用字,數學符號,emoji表情等

總結

以上是生活随笔為你收集整理的Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。