Python操作MySQL数据库

看了几篇博客,难道是打开姿势不对?总是感觉不是很懂,于是自己再总结一下。

更新中。。。

初始化

运行环境

  • pycharm 2020
  • python 3.7

需要使用pip install pymysql安装

连接

1
2
3
4
5
6
7
8
9
import pymysql # 导入pymysql模块

conn = pymysql.connect(
host="你的数据库地址",
user="用户名",
password="密码",
database="数据库名",
charset="utf8"
)

相关参数及解释

参数解释
host数据库服务器地址,默认 localhost
user用户名,默认为当前程序运行用户
password登录密码,默认为空字符串
database默认操作的数据库
port数据库端口,默认为 3306
bind_address当客户端有多个网络接口时,指定连接到主机的接口。参数可以是主机名或IP地址。
unix_socket unix套接字地址,区别于 host 连接
read_timeout读取数据超时时间,单位秒,默认无限制
write_timeout写入数据超时时间,单位秒,默认无限制
charset数据库编码
sql_mode指定默认的 SQL_MODE
read_default_file指定my.cnf文件以从[client]部分下读取这些参数。
conv用来代替默认的转换字典。这是用来提供自定义的类型的marshallingunmaraling
use_unicode是否默认使用unicode字符串。对于Py3k来说,这个选项默认为true。
client_flag自定义标志发送到MySQL。在constants.CLIENT中找到可能的值。
cursorclass设置默认的游标类型
init_command当连接建立完成之后执行的初始化 SQL 语句
connect_timeout连接超时时间,默认 10,最小 1,最大 31536000
ssl类似于mysql_ssl_set()参数的dict参数。目前不支持capath和cipher参数。
read_default_group要从配置文件中读取的Group。
compressNot supported
named_pipeNot supported
autocommit是否自动提交,默认不自动提交,参数值为 None 表示以服务器为准
local_infile启用LOAD DATA LOCAL命令的布尔值。(默认:False)
max_allowed_packet发送给服务器的最大数据量,默认为 16MB
defer_connect是否惰性连接,默认为立即连接
auth_plugin_map一个处理该插件的类的插件名称口令。该类将把Connection对象作为构造函数的参数。该类需要一个authenticate方法,以一个认证包作为参数。对于对话插件,可以使用 prompt(echo,prompt)方法(如果没有 authenticate method)从用户那里返回一个字符串。(实验性的)
server_public_keySHA256 authenticaiton插件公钥值。(默认:None)
db参数 database 的别名
passwd参数 password 的别名
binary_prefix在字节和字节数组上添加_binary前缀。(默认:False)

参考文章