详解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翻译软件实现代码(使用google api完成)
Nov 26 Python
python人人网登录应用实例
Sep 26 Python
深入解析Python中的WSGI接口
May 11 Python
Python实现批量转换文件编码的方法
Jul 28 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
Python网络编程详解
Oct 31 Python
python中partial()基础用法说明
Dec 30 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
Python爬虫:Request Payload和Form Data的简单区别说明
Apr 30 Python
python从PDF中提取数据的示例
Oct 30 Python
Python中Schedule模块使用详解 周期任务神器
Apr 19 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
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
nodejs npm install全局安装和本地安装的区别
2014/06/05 NodeJs
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
js实现当前输入框高亮显示的方法
2015/08/19 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
JavaScript算法系列之快速排序(Quicksort)算法实例详解
2016/09/04 Javascript
jQuery实现隔行变色的方法分析(对比原生JS)
2016/11/18 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
基于Vue实现电商SKU组合算法问题
2019/05/29 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
深入Python解释器理解Python中的字节码
2015/04/01 Python
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
python2 与python3的print区别小结
2018/01/16 Python
python实现扫描日志关键字的示例
2018/04/28 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
python 列表输出重复值以及对应的角标方法
2019/06/11 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
在matplotlib中改变figure的布局和大小实例
2020/04/23 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
详解python中的异常捕获
2020/12/15 Python
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
美国旅游网站:Tours4Fun
2017/02/17 全球购物
创业资金计划书
2014/02/06 职场文书
行政工作个人的自我评价
2014/02/13 职场文书
政治思想表现评语
2014/05/04 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
ORACLE查看当前账号的相关信息
2021/06/18 Oracle