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数据库的主要内容,如果未能解决你的问题,请参考以下文章

Python3连接MySQL

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

基于Python3.6使用Django框架连接mysql数据库的驱动模块安装解决办法

Python3中使用PyMySQL连接Mysql

第七篇:Python3连接MySQL

Python3 MySQL 数据库连接 -PyMySQL