一、基本介绍
Python3 操作 MySQL 数据库 可以使用的模块是 pymysql 和 MySQLdb。 这个两个模块都是通过自己的 API 执行原生的 SQL 语句实现的。 MySQLdb 是最早出现的一个操作 MySQL 数据库的模块,核心由C语言编写,接口精炼,性能最棒,缺点是环境依赖较多,安装稍复杂,特别是 windows 中不好安装。更新较慢。 pymysql 为替代 MySQLdb 而生,纯 Python 实现,API 的接口与 MySQLdb 完全兼容,安装方便。
Python3.7安装链接: https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz(Linux版)
1、安装Python3.7
# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc
# wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
# tar -xvzf Python-3.6.5.tgz -C /usr/local/
# cd /usr/local/Python-3.6.5/
# ./configure prefix=/usr/local/python3.6
# make && make install
2、配置环境变量
# vim /etc/profile
### 添加到最后
PYTHON_HOME=/usr/local/python3.6
PATH=$PYTHON_HOME/bin:$PATH
# source /etc/profile
[root@localhost ~]# python3 -V
Python 3.7.2
[root@localhost ~]# pip3 -V
pip 9.0.3 from /usr/local/python3.7/lib/python3.7/site-packages (python 3.7)
3、pymysql连接MySQL
pymsql是Python中操作MySQL的模块
[root@localhost ~]# pip3 install pymysql
[root@localhost ~]# cat mysql.py
#!/usr/local/python3.6/bin/python3
import pymysql
# 创建连接
conn = pymysql.connect(host='192.168.91.129',port=3306,user='root',passwd='Youngfit@123456',db='youngfit',charset='utf8')
# 获取游标对象
cursor = conn.cursor()
# 定义sql语句
create_table1_sql = """create table t2(id int,name varchar(20))"""
cursor.execute(create_table1_sql)
[root@localhost ~]# python3 mysql.py
4、mysqlclient连接MySQL
安装系统依赖库和编译器
[root@localhost ~]# yum install mariadb-devel gcc
如果是系统自带的 python2环境,安装 Python2 依赖库
python-devel
如果是 python3环境,编译安装 python3 后就不用再操作了
安装mysqlclient
[root@localhost ~]# pip3 install mysqlclient
import MySQLdb
# 创建连接
db=MySQLdb.connect(
host='192.168.91.129',
port=3306,
user='root',
passwd='Youngfit@123456',
db='youngfit',
charset='utf8'
)
# 获取游标对象
cursor2 = db.cursor()
# 执行sql语句
cursor2.execute('''insert into youngfit.t2 values(1,'feige')''')
# 提交
db.commit()
# 关闭游标对象
cursor2.close()
# 关闭连接
db.close()
# 2.mysqlclient方式操作数据库
import MySQLdb
username = input("请输入用户名:")
password = input("请输入密码:")
sql = input('''请输入执行的sql语句:''')
db = MySQLdb.connect(
host='192.168.91.133',
port=3306,
user=username,
passwd=password,
db='youngfit',
charset='utf8'
)
cursor2 = db.cursor()
cursor2.execute(sql)
db.commit()
cursor2.close()
db.close()