详解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 05 Python
python进阶教程之函数对象(函数也是对象)
Aug 30 Python
Python中with及contextlib的用法详解
Jun 08 Python
python自定义异常实例详解
Jul 11 Python
详解Django之admin组件的使用和源码剖析
May 04 Python
解决pyqt5中QToolButton无法使用的问题
Jun 21 Python
python读出当前时间精度到秒的代码
Jul 05 Python
Python 微信爬虫完整实例【单线程与多线程】
Jul 06 Python
django框架模板语言使用方法详解
Jul 18 Python
Python高级property属性用法实例分析
Nov 19 Python
python 多维高斯分布数据生成方式
Dec 09 Python
python获取依赖包和安装依赖包教程
Feb 13 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 curl模拟post请求和提交多维数组的示例代码
2015/11/19 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
javascript OFFICE控件测试代码
2009/12/08 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
jQuery AjaxQueue改进步骤
2011/10/06 Javascript
firebug的一个有趣现象介绍
2011/11/30 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
python实现自动更换ip的方法
2015/05/05 Python
Python中有趣在__call__函数
2015/06/21 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
Python遍历字典方式就实例详解
2019/12/28 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
python实现低通滤波器代码
2020/02/26 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
大学自我鉴定
2013/12/20 职场文书
业务主管岗位职责范本
2013/12/25 职场文书
小学生新年寄语
2014/04/03 职场文书
我的求职择业计划书
2014/04/04 职场文书
卖房协议书样本
2014/10/30 职场文书
文明单位申报材料
2014/12/23 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
Mysql案例刨析事务隔离级别
2021/09/25 MySQL