请自行构建一个Mysql容器并将Python开发数据保存到此数据库 用户名数据库名不限制
下面是一个完整的示例,展示如何构建一个 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
2. 安装 Python MySQL 客户端
确保 Python 已安装,然后使用 pip
安装 mysql-connector-python
:
yum install pip
pip install mysql-connector-python
3. 编写 Python 脚本保存数据
编写一个名为 save_data.py
的 Python 脚本,该脚本连接到 MySQL 容器并将数据保存到数据库中。
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;
这将显示数据库中的数据,验证数据已成功插入。
通过以上步骤,你可以成功构建 MySQL 容器,并使用 Python 脚本将数据保存到 MySQL 数据库中。
分类:
python学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)