详解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 Mysql自动备份脚本
Jul 14 Python
Python代码的打包与发布详解
Jul 30 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
scrapy爬虫实例分享
Dec 28 Python
详解python3中tkinter知识点
Jun 21 Python
Django forms组件的使用教程
Oct 08 Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 Python
python基于递归解决背包问题详解
Jul 03 Python
感知器基础原理及python实现过程详解
Sep 30 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
Apr 27 Python
详解anaconda离线安装pytorchGPU版
Sep 08 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
数据库的日期格式转换
2006/10/09 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
繁简字转换功能
2006/07/19 Javascript
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
Javascript 面向对象 对象(Object)
2010/05/13 Javascript
jquery插件制作教程 txtHover
2012/08/17 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
javascript实现支持移动设备画廊
2015/08/24 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
Javascript的this用法
2017/01/16 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
python中的编码知识整理汇总
2016/01/26 Python
Python迭代和迭代器详解
2016/11/10 Python
python skimage 连通性区域检测方法
2018/06/21 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
2019/11/11 Python
幸福家庭事迹材料
2014/02/03 职场文书
加油口号大全
2014/06/13 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
骨干教师申报材料
2014/12/17 职场文书
师德师风事迹材料
2014/12/20 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle