4 种 Python 连接 MySQL 数据库的方法,速来学习!!

这篇具有很好参考价值的文章主要介绍了4 种 Python 连接 MySQL 数据库的方法,速来学习!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python 连接到 MySQL 数据库的方法不是很系统,实际中有几种不同的连接方法,而且不是所有的方法都能与不同的操作系统很好地配合。除此之外,启用SSL也是一个挑战。

本文涵盖了四种方法,你可以用它们来连接你的Python应用程序和MySQL。这些例子将使用PlanetScale,一个用于MySQL的无服务器数据库平台。

如果你需要一个免费的数据库来测试你的连接,PlanetScale是一个很好的选择PlanetScale建立在Vitess之上,为你提供一个熟悉的工作流程分支来测试和部署不同模式。

Vitess建于2010年用于解决YouTube的扩展问题。从那时起,这个开源项目持续增长,现在帮助一些公司,如Slack和Square处理他们的大规模数据扩展需求。

你可以从下面注册一个账户,获得一个免费的5GB数据库。

添加链接描述

创建一个数据库

当你进入PlanetScale的仪表板。

在你的组织概览仪表板上点击 “创建新数据库”。

给你的数据库起个名字。

从下拉菜单中选择一个区域。

点击创建数据库。

你的数据库将被创建为一个主要的开发分支。你可以在这里进行模式修改,一旦你准备好了,就可以把它推广到生产中。

获取连接凭证

要生成连接凭证,必须做到以下步骤:

在你的数据库概览页面上点击 “连接”。

从 "连接方式 "下拉菜单中选择 “Python”。

将凭证复制到你的Python应用程序文件夹中的.env文件。

为了确保连接的安全性,PlanetScale使用了来自证书颁发机构(CA)的证书,它是几乎所有平台上的系统根的一部分。当连接到数据库时,你必须指定你信任的CA证书的路径。注意,这个路径取决于你的平台。这里有一个跨越各种操作系统和发行版的常见路径列表。

添加链接描述

如果你从PlanetScale仪表板上复制了证书,你已经完成这一步,因为PlanetScale会自动检测你的操作系统。

如果你使用的是Windows系统,你需要下载根证书,然后用你所使用的驱动程序的正确配置选项指向它们的位置。

用mysqlclient连接到MySQL

**mysqlclient包是用于MySQL的最流行的Python包之一。**它包含MySQLdb模块,一个提供Python数据库API的MySQL接口。

首先安装mysqlclient。你可以通过两种方式来完成这件事。

使用来自MySQL官方网站的安装程序,它与你正在运行的操作系统和SQL版本相匹配。
使用 pip 来安装它。

pip install mysqlclient

在Linux上,你可能需要在安装mysqlclient之前安装Python3和MySQL开发头文件和库。

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

一旦你安装了mysqlclient,你可以使用下面的代码连接到数据库。

import os
import MySQLdb # import the MySQLdb module
from dotenv import load_dotenv
load_dotenv()

# Create the connection object
connection = MySQLdb.connect(
    host=os.getenv("HOST"),
    user=os.getenv("USERNAME"),
    passwd=os.getenv("PASSWORD"),
    db=os.getenv("DATABASE"),
    ssl_mode="VERIFY_IDENTITY",
    ssl={
        'ca': os.getenv("SSL_CERT")
    }
)

# Create cursor and use it to execute SQL command
cursor = connection.cursor()
cursor.execute("select @@version")
version = cursor.fetchone()

if version:
    print('Running version: ', version)
else:
    print('Not connected.')

注意,你必须安装 python-dotenv 并导入 os 模块以访问.env 文件中的数据库凭证。

Windows用户要注意,从wheel轮子文件中安装的mysqlclient不支持ssl模式。由于你想确保数据库连接是安全的,我们建议使用另一个驱动,比如mysql-connector-python。

这个例子使用连接来获取数据库的SQL版本,然后关闭连接。

其余的连接方法的语法与这个例子几乎相同。这种类似的语法源于 Python 数据库 API 规范 (PEP 249),它鼓励用于访问数据库的 Python 模块之间的一致性。

用MySQL connector连接到MySQL

MySQL connector/Python模块是Oracle支持的官方驱动,用于通过Python连接MySQL。该连接器完全是Python语言,而mysqlclient是用C语言编写的。它也是独立的,意味着它不需要MySQL客户端库或标准库以外的任何Python模块。

注意,MySQL Connector/Python不支持旧的MySQL服务器认证方法,这意味着4.1之前的MySQL版本不能工作。

首先安装mysql-connector-python模块。建议使用pip来安装它。

pip install mysql-connector-python

安装后,使用以下代码连接到MySQL:

i

mport os
from dotenv import load_dotenv
from mysql.connector import Error
import mysql.connector

load_dotenv()

connection = mysql.connector.connect(
host=os.getenv("HOST"),
database=os.getenv("DATABASE"),
user=os.getenv("USERNAME"),
password=os.getenv("PASSWORD"),
ssl_ca=os.getenv("SSL_CERT")
)

try:
    if connection.is_connected():
        cursor = connection.cursor()
    cursor.execute("select @@version ")
    version = cursor.fetchone()
    if version:
        print('Running version: ', version)
    else:
        print('Not connected.')
except Error as e:
    print("Error while connecting to MySQL", e)
finally:
    connection.close()

用PyMySQL连接到MySQL

PyMySQL包是另一个连接器,你可以用它来连接Python和MySQL。如果你追求速度,这是一个很好的选择,因为它比mysql-connector-python快。

你可以使用 pip 来安装它。

pip install PyMySQL

然后,使用以下连接代码。

from dotenv import load_dotenv
import pymysql
import os
load_dotenv()
connection = pymysql.connect(
    host=os.getenv("HOST"),
    database=os.getenv("DATABASE"),
    user=os.getenv("USERNAME"),
    password=os.getenv("PASSWORD"),
    ssl_ca=os.getenv("SSL_CERT")
)
cursor = connection.cursor()
cursor.execute("select @@version ")
version = cursor.fetchone()
if version:
    print('Running version: ', version)
else:
    print('Not connected.')
connection.close()

用aiomysql连接到MySQL

aiomysql库用于从asyncio框架访问MySQL数据库。除了是异步的特性之外,连接代码与PyMySQL相似。注意,使用aiomysql需要Python 3.7以上版本和PyMySQL。

要使用aiomysql,首先要用安装异步模块。

pip install asyncio

然后,用以下方法安装aiomysql。

pip install aiomysql

然后你可以使用以下代码连接到MySQL。

import os
import asyncio
import aiomysql
import ssl

from dotenv import load_dotenv
load_dotenv()

ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
ctx.load_verify_locations(cafile=os.getenv("SSL_CERT"))

loop = asyncio.get_event_loop()

async def connect_db():
   connection = await aiomysql.connect(
       host=os.getenv("HOST"),
       port=3306,
       user=os.getenv("USERNAME"),
       password=os.getenv("PASSWORD"),
       db=os.getenv("DATABASE"),
       loop=loop,
       ssl=ctx
   )
   cursor = await connection.cursor()
   await cursor.execute("select @@version")
   version = await cursor.fetchall()
   print('Running version: ', version)
   await cursor.close()
   connection.close()
loop.run_until_complete(connect_db())

总结

在数据库中保存数据是应用程序的共同特征之一。像Python一样,大多数编程语言支持与不同数据库的连接和交互。

本教程探讨了Python与MySQL的连接。我们分享了可以使用的四种不同的常用连接方法,并在PlanetScale数据库上使用SSL对它们进行了测试,这是一个关键的步骤,因为它可以防止中间人攻击。

我们回顾了每个连接方式的连接器是如何工作的,并展示了运行它所需的代码。现在你已经完成了这个实践概述,你已经准备好将MySQL数据库连接到Python应用程序中了。文章来源地址https://www.toymoban.com/news/detail-754799.html

到了这里,关于4 种 Python 连接 MySQL 数据库的方法,速来学习!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IDEA连接MySQL数据库的四种方法

    首先右击此电脑点击管理,进入页面  再服务栏确保MySQL是正常运行状态 打开IDEA, 左边栏选择Maven Archetype,新建一个名为javaweb的新工程 进行如图编辑完成新建  在Main包下新建一个java包,右击java包进行下图操作,java包拥有新建class的权限 在java下面新建一个HelloConnection1的类,

    2024年02月12日
    浏览(55)
  • Java连接mysql数据库方法及代码(jdbc)

    编译器使用IDEA 我的相关博客: java代码程序中连接mysql数据库的方法及代码 mysql数据库并发上锁问题,java代码 1.首先从mysql官网下载mysql-connector-java.jar包到本地。 这里注意要和你本地的mysql数据库版本相匹配! 下载相应的压缩包,在本地解压即可进行下一步操作。 2.打开自己

    2024年02月08日
    浏览(68)
  • 【python】Django——连接mysql数据库

    笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 【Django专栏】 Django——django简介、django安装、创建项目、快速上手 Django——templates模板、静态文件、django模板语法、请求和响应 Django——连接mysql数据库 ORM(Object-Relational Mapping)是一种编程技术,它允许开发者使用面

    2024年02月04日
    浏览(58)
  • Python小姿势 - Python连接MySQL数据库

    Python连接MySQL数据库 Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python的创始人为吉多·范罗苏姆(Guido van Rossum),于1989年底圣诞节期间,为了打发无聊的圣诞节,决心开发一个新的脚本解释程序,解释程序当时广泛用于Unix系统上,Guido最初取名为“

    2024年02月04日
    浏览(37)
  • Python Django 之连接 Mysql 数据库详解

    博客:https://blog.csdn.net/qq_34745941/article/details/122549376 若已安装,请忽略。 主要使用的文件如图 若 pip 安装失败,可进入 Python 官方库中下载 whl 文件,操作可参考: 博客:https://blog.csdn.net/qq_34745941/article/details/106341898 在 settings.py 中,配置 Mysql 的连接串 扩展: Django 也支持其

    2024年02月04日
    浏览(55)
  • Python入门教程||Python3 MySQL 数据库连接||

    本文我们为大家介绍 Python3 使用 PyMySQL 连接数据库,并实现简单的增删改查。 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2 中则使用mysqldb。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。 在使用 PyMySQL 之前,我们

    2023年04月23日
    浏览(46)
  • 使用Python pymysql连接Mysql数据库-菜鸟教程

    1、安装pymysql模块 pip install pymysql 2、启动Mysql数据库服务 net start mysql80  3、连接数据库 运行结果如下  4、创建数据库表 执行成功后,在本地登录mysql数据库进行查看验证   5、数据库插入操作  执行程序后在本地查看验证  6、数据库查询操作 Python查询Mysql使用 fetchone() 方法

    2024年02月04日
    浏览(52)
  • 【JavaSE专栏90】用最简单的方法,使用 JDBC 连接 MySQL 数据库

    作者主页 :Designer 小郑 作者简介 :3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN学院、蓝桥云课认证讲师。 主打方向 :Vue、SpringBoot、微信小程序 本文讲解了如何使用 JDBC 连接 MySQL 数据库,并给出了样例代码。JDBC 是 Java 语言访问

    2024年02月11日
    浏览(43)
  • 如何用python连接mysql和mongodb数据库【极简版】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章

    2024年01月23日
    浏览(45)
  • python-Excel数据模型文档转为MySQL数据库建表语句(需要连接数据库)-工作小记

    将指定Excel文档转为create table 建表语句。该脚本适用于单一且简单的建表语句 呈现效果  代码   仅作为笔记记录,如有问题请各位大佬来指导 

    2024年02月14日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包