jke*_*raa -1 mysql mysql-python docker dockerfile docker-compose
所以,我有一个 MySQL docker 容器,我在上面运行一个脚本来写入数据库,但是当我执行脚本时,我的脚本抛出
mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
Run Code Online (Sandbox Code Playgroud)
我是否必须在 Dockerfile 中启动 MySQL 服务?
docker-compose.yml:
version: '3.3'
services:
db:
build: .
restart: always
environment:
MYSQL_ROOT_PASSWORD: test
MYSQL_DATABASE: test
MYSQL_USER: test
MYSQL_PASSWORD: test
volumes:
- ./db_data:/docker-entrypoint-initdb.d
Run Code Online (Sandbox Code Playgroud)
首先,您需要公开 MySQL 端口3306
或您为 MySQL 设置的任何其他端口,然后您可以从commmand
参数中获得帮助。
一个工作样本是这样的:
version: '3.1'
services:
db:
image: mysql
container_name: mysql_test
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: test
MYSQL_USER: test_user
MYSQL_PASSWORD: test_password
ports:
- 30001:3306
expose:
- 30001
volumes:
- my-db:/var/lib/mysql
networks:
- test
networks:
test:
volumes:
my-db:
driver: local
Run Code Online (Sandbox Code Playgroud)
使用此示例代码,您将能够localhost:30001
从主机和mysql_test:3306
同一网络中的其他容器连接到您的数据库。
归档时间: |
|
查看次数: |
1641 次 |
最近记录: |