详解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解析发往本机的数据包示例 (解析数据包)
Jan 16 Python
Python中的多行注释文档编写风格汇总
Jun 16 Python
python删除本地夹里重复文件的方法
Nov 19 Python
Python3.4 tkinter,PIL图片转换
Jun 21 Python
10 分钟快速入门 Python3的教程
Jan 29 Python
Django框架实现的分页demo示例
May 25 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
Python 线程池用法简单示例
Oct 02 Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 Python
Python办公自动化之Excel(中)
May 24 Python
Python激活Anaconda环境变量的详细步骤
Jun 08 Python
python四种出行路线规划的实现
Jun 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利用事务处理转账问题
2015/04/22 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
分享php分页的功能模块
2015/06/16 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
jQuery学习笔记之 Ajax操作篇(一) - 数据加载
2014/06/23 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
Javascript数据结构与算法之列表详解
2015/03/12 Javascript
jQuery实现多级联动下拉列表查询框
2016/01/18 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
Python实现从百度API获取天气的方法
2015/03/11 Python
Python网站验证码识别
2016/01/25 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Python用SSH连接到网络设备
2021/02/18 Python
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
电脑销售顾问自荐信
2014/01/29 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
计算机教师工作总结
2015/08/13 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python