详解Python连接MySQL数据库的多种方式


Posted in Python onApril 16, 2019

上篇文章分享了windows下载mysql5.7压缩包配置安装mysql

后续可以选择

①在本地创建一个数据库,使用navicat工具导出远程测试服务器的数据库至本地,用于学习操作,且不影响测试服务器的数据

②连接测试服务器的数据库账号和密码,在测试服务器上操作,内部测试服务器的数据库账号和密码在分配时会给不同账号做权限限制,如不同账号允许登录的方式、开放的数据库范围、账号可读写操作的权限都会不一样,若出现一直使用代码登录不上远程数据库服务器,应检查下账号是否具有权限,可询问负责管理测试服务器数据库管理员。(本人亲测不同账号相同代码,一个能操作成功一个报错连接不上数据库;另,在navicat工具或pycharm ide内配置可视化数据库时账号登录需要使用ssh通道认证,相同的账号用python代码连接却完全不需要ssh远程连接的代码,提供账号和密码就能登录成功。数据库权限限制相关的着实深!)

本次代码实现连接远程服务器

由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。

目前,MySQL驱动有几种:

mysql-connector-python:是MySQL官方的纯Python驱动;

MySQL-python:是封装了MySQL C驱动的Python驱动。

安装MySQL驱动:

pip install mysql-connector-python

测试是否安装成功,测试python下是否可成功导入mysql.connector即可(import mysql.connector)

pip install MySQL-python (不支持python3)

测试是否安装成功,测试python下是否可成功导入MySQLdb即可(import MySQLdb)

pip install mysqlclient (mysqlclient 完全兼容MySQLdb,同时支持python3)

测试是否安装成功,测试python下是否可成功导入MySQLdb即可(import MySQLdb)

pip install PyMySQL

测试是否安装成功,测试python下是否可成功导入pymysql即可(import pymysql)

python连接MySQL数据库的多种方式(方式一)

# 方式一:
import mysql.connector
 
# 打开数据库连接
db = mysql.connector.connect(host='*.*.*.*',
        port=3306,
        user='*',  # 数据库IP、用户名和密码
        passwd='*',
        charset = 'utf8')  
 
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
 
# 使用 execute() 方法执行 SQL 查询
cursor.execute("show databases;")
cursor.execute("use database_name;")
cursor.execute("show tables;")
 
# 使用 fetchone() 方法获取单条数据;使用 fetchall() 方法获取所有数据
data = cursor.fetchall()
 
for item in data:
  print(item[0])
 
# 关闭数据库连接
db.close()

python连接MySQL数据库的多种方式(方式二)

# 方式二:
import MySQLdb
 
# 打开数据库连接
conn = MySQLdb.connect(host='*.*.*.*',
      port=3306,
      user='*',
      passwd='*',
      charset = 'utf8'
      )
      
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = conn.cursor()
 
# 使用 execute() 方法执行 SQL 查询
cursor.execute("show databases;")
cursor.execute("use database_name;")
cursor.execute("show tables;")
cursor.execute("select * from tables_name")
 
# 使用 fetchone() 方法获取单条数据;使用 fetchall() 方法获取所有数据
data = cursor.fetchall()
for item in data:
 print(item)
 
# 关闭数据库连接
cursor.close()

python连接MySQL数据库的多种方式(方式三)

# 方式三:
import pymysql
 
# 打开数据库连接
conn = pymysql.connect(host='*.*.*.*',
      port=3306,
      user='*',
      passwd='*',
      charset = 'utf8'
      )
    
# 使用 cursor() 方法创建一个游标对象 cursor      
cursor = conn.cursor()
 
# 使用 execute() 方法执行 SQL 查询
cursor.execute("show databases;")
cursor.execute("use database_name;")
cursor.execute("show tables;")
cursor.execute("select * from tables_name")
 
# 使用 fetchone() 方法获取单条数据;使用 fetchall() 方法获取所有数据
data = cursor.fetchall()
for item in data:
 print(item[0])
  
# 关闭数据库连接
cursor.close()

以上所述是小编给大家介绍的Python连接MySQL数据库方式详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python字典多键值及重复键值的使用方法(详解)
Oct 31 Python
Python实现完整的事务操作示例
Jun 20 Python
python训练数据时打乱训练数据与标签的两种方法小结
Nov 08 Python
Python利用heapq实现一个优先级队列的方法
Feb 03 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
Jul 03 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 Python
Python异常类型以及处理方法汇总
Jun 05 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 Python
Python创建SQL数据库流程逐步讲解
Sep 23 Python
详解Python学习之安装pandas
Apr 16 #Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
Apr 16 #Python
python接口自动化(十六)--参数关联接口后传(详解)
Apr 16 #Python
Python实现连接MySql数据库及增删改查操作详解
Apr 16 #Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 #Python
python实现扫描局域网指定网段ip的方法
Apr 16 #Python
python实现扫描ip地址的小程序
Apr 16 #Python
You might like
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
PHP实现把数字ID转字母ID
2013/08/12 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
jquery对表单操作2
2011/04/06 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
2016/07/22 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
bootstrap-paginator服务器端分页使用方法详解
2020/02/13 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
简述Python2与Python3的不同点
2018/01/21 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
详解在Python中使用Torchmoji将文本转换为表情符号
2020/07/27 Python
有关HTML5中背景音乐的自动播放功能
2017/10/16 HTML / CSS
新奇的小玩意:IWOOT
2016/07/21 全球购物
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
方正Java笔试题
2014/07/03 面试题
加拿大留学自荐信
2014/01/28 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
长城导游词
2015/01/30 职场文书
转正申请报告格式
2015/05/15 职场文书
2015年财政局工作总结
2015/05/21 职场文书
关于感恩的作文
2019/08/26 职场文书
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle