一、基本介绍

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

  1. # 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
  2. # wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
  3. # tar -xvzf Python-3.6.5.tgz -C /usr/local/
  4. # cd /usr/local/Python-3.6.5/
  5. # ./configure prefix=/usr/local/python3.6
  6. # make && make install

2、配置环境变量

  1. # vim /etc/profile
  2. ### 添加到最后
  3. PYTHON_HOME=/usr/local/python3.6
  4. PATH=$PYTHON_HOME/bin:$PATH
  5. # source /etc/profile
  1. [root@localhost ~]# python3 -V
  2. Python 3.7.2
  3. [root@localhost ~]# pip3 -V
  4. pip 9.0.3 from /usr/local/python3.7/lib/python3.7/site-packages (python 3.7)

3、pymysql连接MySQL

pymsql是Python中操作MySQL的模块

  1. [root@localhost ~]# pip3 install pymysql

pymysql连接MySQL

  1. [root@localhost ~]# cat mysql.py
  2. #!/usr/local/python3.6/bin/python3
  3. import pymysql
  4. # 创建连接
  5. conn = pymysql.connect(host='192.168.91.129',port=3306,user='root',passwd='Youngfit@123456',db='youngfit',charset='utf8')
  6. # 获取游标对象
  7. cursor = conn.cursor()
  8. # 定义sql语句
  9. create_table1_sql = """create table t2(id int,name varchar(20))"""
  10. cursor.execute(create_table1_sql)
  11. [root@localhost ~]# python3 mysql.py


定义sql语句

4、mysqlclient连接MySQL

安装系统依赖库和编译器

  1. [root@localhost ~]# yum install mariadb-devel gcc
  • 如果是系统自带的 python2环境,安装 Python2 依赖库

    1. python-devel
  • 如果是 python3环境,编译安装 python3 后就不用再操作了

安装mysqlclient

  1. [root@localhost ~]# pip3 install mysqlclient

安装mysqlclient

  1. import MySQLdb
  2. # 创建连接
  3. db=MySQLdb.connect(
  4. host='192.168.91.129',
  5. port=3306,
  6. user='root',
  7. passwd='Youngfit@123456',
  8. db='youngfit',
  9. charset='utf8'
  10. )
  11. # 获取游标对象
  12. cursor2 = db.cursor()
  13. # 执行sql语句
  14. cursor2.execute('''insert into youngfit.t2 values(1,'feige')''')
  15. # 提交
  16. db.commit()
  17. # 关闭游标对象
  18. cursor2.close()
  19. # 关闭连接
  20. db.close()

关闭连接

  1. # 2.mysqlclient方式操作数据库
  2. import MySQLdb
  3. username = input("请输入用户名:")
  4. password = input("请输入密码:")
  5. sql = input('''请输入执行的sql语句:''')
  6. db = MySQLdb.connect(
  7. host='192.168.91.133',
  8. port=3306,
  9. user=username,
  10. passwd=password,
  11. db='youngfit',
  12. charset='utf8'
  13. )
  14. cursor2 = db.cursor()
  15. cursor2.execute(sql)
  16. db.commit()
  17. cursor2.close()
  18. db.close()


mysqlclient方式操作数据库

mysqlclient方式操作数据库