首页 > 数据库 >请自行构建一个Mysql容器并将Python开发数据保存到此数据库 用户名数据库名不限制

请自行构建一个Mysql容器并将Python开发数据保存到此数据库 用户名数据库名不限制

时间:2024-06-05 19:44:36浏览次数:22  
标签:Python 数据库 MySQL cursor mysql Mysql data

下面是一个完整的示例,展示如何构建一个 MySQL 容器,并使用 Python 脚本将数据保存到数据库中。

  1. 启动 MySQL Docker 容器
    首先,确保 Docker 已经安装。然后打开终端或命令提示符,运行以下命令来拉取 MySQL Docker 镜像并启动容器:
docker pull mysql:latest
docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=mydb -p 3306:3306 -d mysql:latest
  1. 安装 Python MySQL 客户端
    确保 Python 已安装,然后使用 pip 安装 mysql-connector-python:
yum install pip
 pip install mysql-connector-python
  1. 编写 Python 脚本保存数据
    编写一个名为 save_data.py 的 Python 脚本,该脚本连接到 MySQL 容器并将数据保存到数据库中。
    vim save_data.py
import mysql.connector
from mysql.connector import errorcode
# 配置数据库连接
config = {
  'user': 'root',
  'password': 'my-secret-pw',
  'host': '127.0.0.1',
  'port': 3306,
  'database': 'mydb',
  'raise_on_warnings': True
}
# 数据要插入
data_to_insert = [
    ('example_name1', 'example_value1'),
    ('example_name2', 'example_value2')
]
# 创建连接
try:
    cnx = mysql.connector.connect(**config)
    cursor = cnx.cursor()
    # 创建表(如果不存在)
    create_table_query = (
        "CREATE TABLE IF NOT EXISTS data ("
        "  id INT AUTO_INCREMENT PRIMARY KEY,"
        "  name VARCHAR(255) NOT NULL,"
        "  value VARCHAR(255) NOT NULL"
        ") ENGINE=InnoDB")
    cursor.execute(create_table_query)
    # 插入数据
    insert_data_query = "INSERT INTO data (name, value) VALUES (%s, %s)"
    cursor.executemany(insert_data_query, data_to_insert)
    # 提交事务
    cnx.commit()
    # 查询数据
    cursor.execute("SELECT * FROM data")
    for (id, name, value) in cursor:
        print(f"ID: {id}, Name: {name}, Value: {value}")
except mysql.connector.Error as err:
    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print("用户名或密码错误")
    elif err.errno == errorcode.ER_BAD_DB_ERROR:
        print("数据库不存在")
    else:
        print(err)
else:
    cursor.close()
    cnx.close()```
4. 运行 Python 脚本
确保 MySQL 容器正在运行,然后在终端中运行 Python 脚本:
```python save_data.py```
5. 验证数据保存成功
脚本运行后,你应该能够看到插入的数据打印到终端中。如果需要进一步验证,可以进入 MySQL 容器并手动查询数据:
```docker exec -it my-mysql mysql -uroot -pmy-secret-pw mydb```
在 MySQL 提示符中,运行以下命令:

```SELECT * FROM data;```
![](/i/l/?n=24&i=blog/3445191/202406/3445191-20240605194005348-1203621822.png)

这将显示数据库中的数据,验证数据已成功插入。
通过以上步骤,你可以成功构建 MySQL 容器,并使用 Python 脚本将数据保存到 MySQL 数据库中。

标签:Python,数据库,MySQL,cursor,mysql,Mysql,data
From: https://www.cnblogs.com/muxinq/p/18233652

相关文章

  • 会Python要怎么接单兼职?怎么把它作为副业发展呢??
    学习资源已打包,需要的小伙伴可以戳这里学习资料1.网络爬虫:爬取网站或者APP数据,把数据提供给用户,或者有的要提供程序2.web后台接口:比如使用Flask提供API接口,这种其实我比较喜欢,但是需求量不多3.数据处理与分析:可以用Pytrhon直接搞定,或者借助Pandas实现一、淘宝接单......
  • python eof是什么
    EOF,为EndOfFile的缩写,通常在文本的最后存在此字符表示资料结束。在微软的DOS和Windows中,读取数据时终端不会产生EOF。此时,应用程序知道数据源是一个终端(或者其它“字符设备”),并将一个已知的保留的字符或序列解释为文件结束的指明;最普遍地说,它是ASCII码中的替换字符(Control......
  • python如何编译成exe文件
    python如何编译成exe文件?具体步骤如下:1、使用pycharm安装pyinstaller。2、找到pyinstaller的安装目录。C:\Users\lounious\PycharmProjects\untitled\venv\Scripts\pyinstaller-script.py注意在该目录的母目录下一般有我们的程序文件C:\Users\lounious\PycharmProject......
  • python运维怎么学
    运维工程师和开发人员一样,同属于IT从业人员,很多人认为运维人员不需要懂开发,其实不然,不懂开发的运维道路会越走越窄。现阶段,掌握一门Python开发已经成为高级运维工程师的必备技能了,那么Python运维要学习哪些内容,如何才能学好?下面给大家介绍一下:1、学习编程不止是学习语法,需要......
  • (数据科学学习手札161)高性能数据分析利器DuckDB在Python中的使用
    本文完整代码及附件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes1简介大家好我是费老师,就在几天前,经过六年多的持续开发迭代,著名的开源高性能分析型数据库DuckDB发布了其1.0.0正式版本。DuckDB具有极强的单机数据分析性能表现,功能丰......
  • 无缝融合:使用 Python 和 PyFFmpeg 合并视频的完整指南
    前言在当今数字化时代,视频内容无处不在。从社交媒体到在线教育,视频已经成为我们生活中不可或缺的一部分。但是,有时候我们可能需要将多个视频片段合并成一个,创造出更丰富、更有吸引力的内容。而今天,我们将向您展示如何使用Python和PyFFmpeg工具实现这一目标。准备工作:安装P......
  • 音频剪裁大师:使用 Python 和 ffmpeg 分割音频的完整指南
    前言在音频处理中,有时候我们需要对音频文件进行分割,提取其中的部分内容以满足特定需求。而Python提供了许多强大的工具和库来实现这一目标,其中ffmpeg是一个功能强大的工具,它不仅支持音频分割,还能进行音频转码、合并、提取等操作。本文将介绍如何使用Python和ffmpeg来分......
  • mysql 查询数据库响应时长的方法
    要查询MySQL数据库的响应时长,通常我们需要测量查询执行的时间。MySQL本身并不直接提供一个查询来显示每个查询的响应时长历史记录,但我们可以使用MySQL的内置函数和工具来测量和记录查询的执行时间。以下是一些方法,我们可以用来测量MySQL查询的响应时长:1.使用SHOWPROFILES(注意......
  • Java1.8语言+ springboot +mysql + Thymeleaf 全套家政上门服务平台app小程序源码
    Java1.8语言+springboot+mysql +Thymeleaf 全套家政上门服务平台app小程序源码家政系统是一套可以提供上门家政、上门维修、上门洗车、上门搬家等服务为一体的家政平台解决方案。它能够与微信对接、拥有用户端小程序,并提供师傅端app,可以帮助创业者在不需要相关技术人员及......
  • 流畅的python--第七章
    把函数视为对象在python中,函数是一等对象。编程语言研究人员把“一等对象”定义为满足以下条件的程序实体:在运行时创建;能赋值给变量或数据结构中的元素;能作为参数传给函数;能作为函数的返回结果。示例7-1创建并测试一个函数,读取函数的__doc__属性,再检查函数的类型......