详解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程序实例(通讯录)
Nov 29 Python
Python内置函数的用法实例教程
Sep 08 Python
Python的面向对象思想分析
Jan 14 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
Oct 18 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
在windows下Python打印彩色字体的方法
May 15 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
详解pandas数据合并与重塑(pd.concat篇)
Jul 09 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
如何使用Python处理HDF格式数据及可视化问题
Jun 24 Python
Python 如何利用ffmpeg 处理视频素材
Nov 27 Python
pandas进行数据输入和输出的方法详解
Mar 23 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缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
javascript闭包的理解
2015/04/01 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
python技能之数据导出excel的实例代码
2017/08/11 Python
transform python环境快速配置方法
2018/09/27 Python
15行Python代码实现网易云热门歌单实例教程
2019/03/10 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
树莓派3 搭建 django 服务器的实例
2019/08/29 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
DOM和JQuery对象有什么区别
2016/11/11 面试题
优秀求职信范文分享
2014/01/26 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
python某漫画app逆向
2021/03/31 Python
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript