在docker容器上使用pymsql连接到mariadb的步骤如下:
docker-compose.yml
的文件,并添加以下内容:version: '3'
services:
mariadb:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_password
volumes:
- ./data:/var/lib/mysql
python:
build:
context: .
dockerfile: Dockerfile
volumes:
- ./app:/app
depends_on:
- mariadb
这个docker-compose.yml
文件定义了两个服务:mariadb
和python
。mariadb
服务使用了官方的mariadb镜像,并设置了root用户的密码。python
服务将使用一个自定义的Dockerfile构建镜像,并将当前目录下的app
目录挂载到容器的/app
目录下。
Dockerfile
的文件,并添加以下内容:FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "your_script.py"]
这个Dockerfile
文件指定了使用Python 3.9作为基础镜像,并将当前目录下的requirements.txt
文件复制到容器的工作目录下。然后安装所需的依赖,并将当前目录下的所有文件复制到容器的工作目录下。最后,通过CMD指令运行你的Python脚本。
requirements.txt
的文件,并添加以下内容:pymysql
这个requirements.txt
文件列出了你的Python脚本所需的依赖,这里只有pymysql
一个依赖。
your_script.py
的Python脚本文件,并添加以下内容:import pymysql
# 连接到mariadb数据库
conn = pymysql.connect(
host='mariadb',
user='root',
password='your_password',
db='your_database',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
# 执行SQL查询
try:
with conn.cursor() as cursor:
# 执行SQL语句
sql = 'SELECT * FROM your_table'
cursor.execute(sql)
result = cursor.fetchall()
print(result)
finally:
conn.close()
这个Python脚本使用pymysql
库连接到mariadb数据库,并执行一个简单的查询语句。你需要根据实际情况修改host
、user
、password
、db
、your_table
等参数。
docker-compose up -d
这个命令将根据docker-compose.yml
文件创建并启动容器。
docker-compose logs -f
如果一切正常,你将看到Python脚本的输出结果。
通过以上步骤,你可以在docker容器上使用pymsql连接到mariadb数据库。请注意,这里只是一个简单的示例,实际应用中可能需要根据具体需求进行更多的配置和优化。
领取专属 10元无门槛券
手把手带您无忧上云