详解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实现的登录和操作开心网脚本分享
Jul 09 Python
在Django的session中使用User对象的方法
Jul 23 Python
python3.0 模拟用户登录,三次错误锁定的实例
Nov 02 Python
python机器学习实战之树回归详解
Dec 20 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
python爬虫之urllib3的使用示例
Jul 09 Python
对python 判断数字是否小于0的方法详解
Jan 26 Python
解决Django连接db遇到的问题
Aug 29 Python
Django框架中间件定义与使用方法案例分析
Nov 28 Python
使用python从三个角度解决josephus问题的方法
Mar 27 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 Python
Python爬虫JSON及JSONPath运行原理详解
Jun 04 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/17 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
JSChart轻量级图形报表工具(内置函数中文参考)
2010/10/11 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
js实现数字滚动特效
2019/12/16 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
2020/10/09 jQuery
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
Python 文件重命名工具代码
2009/07/26 Python
python实现基于SVM手写数字识别功能
2020/05/27 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python打造爬虫代理池过程解析
2019/08/15 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
Python configparser模块常用方法解析
2020/05/22 Python
印度在线购物网站:Paytmmall
2019/07/24 全球购物
自荐信格式的六要素
2013/09/21 职场文书
化学教师教学反思
2014/01/17 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
文体活动总结范文
2014/05/05 职场文书
外贸业务员求职信
2014/06/16 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
污水处理保证书
2015/05/09 职场文书
少先队大队委竞选口号
2015/12/25 职场文书