详解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装饰器使用实例:验证参数合法性
Jun 24 Python
python实现给微信公众号发送消息的方法
Jun 30 Python
Python爬虫番外篇之Cookie和Session详解
Dec 27 Python
wxPython之解决闪烁的问题
Jan 15 Python
Python 字符串与数字输出方法
Jul 16 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
python实现简单的五子棋游戏
Sep 01 Python
python 批量压缩图片的脚本
Jun 02 Python
Python并发编程实例教程之线程的玩法
Jun 20 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 daodb插入、更新与删除数据
2009/03/19 PHP
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
PHP序列化的四种实现方法与横向对比
2018/11/29 PHP
js简单的弹出框有关闭按钮
2014/05/05 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
vue组件三大核心概念图文详解
2019/05/30 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
python查看FTP是否能连接成功的方法
2015/07/30 Python
Python做简单的字符串匹配详解
2017/03/21 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
python实现在函数中修改变量值的方法
2019/07/16 Python
UNIX文件系统分类
2014/11/11 面试题
历史学专业毕业生求职信
2013/09/27 职场文书
软件工程专业推荐信
2013/10/28 职场文书
九年级政治教学反思
2014/02/06 职场文书
廉政承诺书范文
2015/04/28 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
Python基于Opencv识别两张相似图片
2021/04/25 Python
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记