以前经常用mysql-connector来访问MySQL数据库,最近看资料看到mysql-connector已慢慢不是主流的访问库了,官方推荐的是MySQLdb。
研究切换到MySQLdb
首先需要去:Unofficial Windows Binaries for Python Extension Packages下载最新版本的安装包
网页中搜索mysqlclient
下载相应版本的文件
我下载的是for python 36的64位版本
控制台执行:
pip install mysqlclient-1.3.12-cp36-cp36m-win_amd64.whl
装好后即可使用
注意一
MySQLdb与以前的mysql.connector的语法完全一致,唯一差别在于import 的内容不一样
以前的是:
import mysql.connector as con
现在的是:
import MySQLdb as con
注意二
因为开发商是瑞典公司,MySQLdb默认的编码是latin1,如果要执行的SQL语句中含有中文,悲剧了,会有错误
UnicodeEncodeError: 'latin-1' codec can't encode character '\u4e00' in position 16: ordinal not in range(256)
解决办法:
以前打开数据库连接的时候是这样的:
cnx = con.connect(user='root', password='supermap', database='lte')
加一个charset='utf8'即可
cnx = con.connect(user='root', password='supermap', database='lte', charset='utf8')