详解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 mysqldb连接数据库
Mar 16 Python
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
在Python中使用元类的教程
Apr 28 Python
Python本地与全局命名空间用法实例
Jun 16 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
python搜索包的路径的实现方法
Jul 19 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
jupyter notebook 增加kernel教程
Apr 10 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 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
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
2014/06/23 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
2015/06/19 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
浅谈node的事件机制
2017/10/09 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
vue form check 表单验证的实现代码
2018/12/09 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
Python的迭代器和生成器使用实例
2015/01/14 Python
Python 正则表达式的高级用法
2016/12/04 Python
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
python 发送json数据操作实例分析
2019/10/15 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
护理学毕业生求职信
2013/11/14 职场文书
房屋转让协议书范本
2014/04/11 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
教师工作失职检讨书
2014/09/18 职场文书
优秀团队申报材料
2014/12/26 职场文书
家长通知书家长意见
2014/12/30 职场文书