无法连接到MySQL docker容器中的MySQL服务?

无法连接到MySQL docker容器中的MySQL服务?,mysql,docker,docker-compose,dockerfile,mysql-python,Mysql,Docker,Docker Compose,Dockerfile,Mysql Python,所以,我有一个MySQL docker容器,我在上面运行脚本写入数据库,但是当我执行脚本时,我的脚本抛出 mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111) 我必须在Dockerfile中启动MySQL服务吗 docker-compose.yml: version: '3.3' services: db: build: .

所以,我有一个MySQL docker容器,我在上面运行脚本写入数据库,但是当我执行脚本时,我的脚本抛出

mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)
我必须在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

如果您试图在主机中执行脚本,则需要导出端口3306

version: '3.3'

services:
  db:
    build: .
    restart: always
    environment: 
      MYSQL_ROOT_PASSWORD: test
      MYSQL_DATABASE: test
      MYSQL_USER: test
      MYSQL_PASSWORD: test
    ports:
      - 3306:3306
    volumes: 
      - ./db_data:/docker-entrypoint-initdb.d

例如,如果您试图使用docker exec在docker内部执行,请检查容器是否安装了docker ps

首先,您需要公开MySQL端口3306或为MySQL设置的任何其他端口 然后您可以从commmand参数获得帮助

工作样本如下所示:

版本:“3.1” 服务: db: 图片:mysql 容器名称:mysql\u test 命令:-默认身份验证插件=mysql\u本机\u密码 重新启动:始终 环境: MYSQL\u ROOT\u密码:ROOT\u密码 MYSQL\u数据库:测试 MYSQL\u用户:test\u用户 MYSQL_密码:测试_密码 端口: - 30001:3306 揭露: - 30001 卷数: -my db:/var/lib/mysql 网络: -试验 网络: 测试: 卷数: 我的数据库: 司机:本地
使用此示例代码,您将能够从主机连接localhost:30001到您的数据库,并从同一网络中的其他容器连接mysql\u test:3306。

您可以分享更多详细信息吗?你检查过服务是否正在运行吗?如果服务正在运行:请共享您正在使用的连接详细信息您可以节省我的时间!