发布时间:2019-09-20 07:29:22编辑:auto阅读(1744)
0、Windows下驱动:MySQLdb(仅支持Python2),pymysql(支持Python2/Python3,推荐使用pip安装)。
1、基本操作。
2、批量插入,用cursor.executemany。可参考python文件读取并使用mysql批量插入 。
3、关于测试连接是否有效,可用conn.ping()。如果参数为空,仅仅测试连接是否有效,无效即抛出异常。如果设置True参数,ping会尝试重连,(并保持自动重连这种特性),如果连接有效或重连成功,ping返回None;否则抛出异常。可参考一、二 。
4、异常捕获可参考:MySQLdb捕捉警告信息 。
5、pymssql连接方法:(参考PyMySQL·GitHub)
connection = pymysql.connect(host='localhost', user='user', passwd='passwd', db='db', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
6、内存溢出问题。(参考:How to get a row-by-row MySQL ResultSet in python)
(1)、对于MySQLdb
import MySQLdb from MySQLdb import cursors conn = MySQLdb.connect(host='127.0.0.1', user='user', passwd='passwd', db='dbname', charset='utf8mb4', cursorclass = cursors.SSCursor, #这行是关键 port=3306)
(2)、对于pymysql
import pymysql from pymysql import cursors conn = MySQLdb.connect(host='127.0.0.1', user='user', passwd='passwd', db='dbname', charset='utf8mb4', cursorclass = cursors.SSCursor, #这行是关键 port=3306)
(3)、或许这一步再控制更好。
cur = conn.cursor(cursors.SSCursor)
7、utf8mb4是utf8的超集,其中mb4指 most bytes 4。
8、用 pymysql 打印 MySQL/MariaDB 的所有库名、表名和字段名。
*** 2016-08-08 ***
walker发现pymysql在不断执行sql语句时会有内存泄露(memory leak),同样条件下mysql-connector-python表现正常,所以现在walker推荐使用mysql-connector-python。MySQL的官方链接:MySQL Connector/Python Developer Guide。(或者到这里面查找mysql_connector)
相关阅读:
*** walker * updated 2016-08-08 ***
上一篇: python字典详解
下一篇: Python读写CSV文件
47839
46384
37276
34727
29311
25969
24904
19946
19540
18019
5788°
6410°
5925°
5959°
7062°
5908°
5941°
6435°
6403°
7774°