python3连接mysql数据库
Posted tianyafu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3连接mysql数据库相关的知识,希望对你有一定的参考价值。
python 3.X连接mysql
python 2.X连接mysql使用的是MySQLdb模块,但是在python 3.X中,MySQLdb还不支持,所以如果在3.X版本中需要使用pymysql模块。
pymysql的具体方法如下:
pymysql.Connect()参数说明 host(str): MySQL服务器地址 port(int): MySQL服务器端口号 user(str): 用户名 passwd(str): 密码 db(str): 数据库名称 charset(str): 连接编码 connection对象支持的方法 cursor() 使用该连接创建并返回游标 commit() 提交当前事务 rollback() 回滚当前事务 close() 关闭连接 cursor对象支持的方法 execute(op) 执行一个数据库的查询命令 fetchone() 取得结果集的下一行 fetchmany(size) 获取结果集的下几行 fetchall() 获取结果集中的所有行 rowcount() 返回数据条数或影响行数 close() 关闭游标对象
1.在连接mysql前,先创建测试表:
create table users( id int primary key auto_increment COMMENT \'主键自增\', username VARCHAR(255) comment \'用户名\', passwd VARCHAR(255) COMMENT \'密码\' )ENGINE=INNODB charset=utf8
2.准备配置文件:
[mysql] host = localhost user = root passwd = root database = python
3.获取mysql连接信息:
import pymysql import configparser import logging.config conf = configparser.ConfigParser() conf.read("prod.conf") # 获取 mysql 连接信息 host = conf.get("mysql", "host") user = conf.get("mysql", "user") passwd = conf.get("mysql", "passwd") database = conf.get("mysql", "database")
4.编写连接方法:
def mysqlConnection(): try: connect = pymysql.connect(host, user, passwd, database) logging.debug("成功连接mysql") return connect except Exception as e: logging.error(repr(e)) return None
5.main方法中执行sql:
if __name__ == \'__main__\':
# 连接
conn = mysqlConnection()
# 获取游标
cursor = conn.cursor()
sql = \'insert into users(username,passwd) values("zhangsan","123456")\'
cursor.execute(sql)
conn.commit()
print("成功插入数据库")
# 关闭连接
conn.close()
6.运行之后查看数据库
7.测试其他的方法:
8.完整代码:
import pymysql import configparser import logging.config conf = configparser.ConfigParser() conf.read("prod.conf") # 获取 mysql 连接信息 host = conf.get("mysql", "host") user = conf.get("mysql", "user") passwd = conf.get("mysql", "passwd") database = conf.get("mysql", "database") def mysqlConnection(): try: connect = pymysql.connect(host, user, passwd, database) logging.debug("成功连接mysql") return connect except Exception as e: logging.error(repr(e)) return None if __name__ == \'__main__\': # 连接 conn = mysqlConnection() # 获取游标 cursor = conn.cursor() """ sql = \'insert into users(username,passwd) values("zhangsan","123456")\' cursor.execute(sql) conn.commit() print("成功插入数据库") """ sql2 = \'select * from users\' cursor.execute(sql2) print("表中共有数据:" + str(cursor.rowcount) + " 条") result = cursor.fetchall() print(result) # 关闭连接 conn.close()
以上是关于python3连接mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段