首页 > 解决方案 > 无法通过我的 docker 容器访问 mysql

问题描述

我通过docker运行mysql,即当我运行docker ps命令时,我得到这个结果:

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                                         NAMES
fXX3aeXXcXXa        mysql:5.7.22           "docker-entrypoint.s…"   35 minutes ago      Up 18 minutes       0.0.0.0:3360->3306/tcp                        db

这是我dbdocker-compose.yml我的 laravel 根项目中的服务:

# ... other services
db:
    image: mysql:5.7.22
    container_name: db
    restart: unless-stopped
    tty: true
    ports:
      - "3360:3306"
    environment:
      MYSQL_DATABASE: laravel_db
      MYSQL_USER: root
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: password
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      - dbdata:/var/lib/mysql
      - ./DockerDevelopment/mysql/my.cnf:/etc/mysql/my.cnf
    networks:
      - app-network
# other services ...

所以,我尝试这个命令:docker exec -it db bash然后转到我的 dockerized db 命令行,我得到这个错误:

root@fXX3aeXXcXXa:/# mysql -u root -p [ENTER]
Enter password: password

错误 1045 (28000): 用户 'root'@'localhost' 的访问被拒绝(使用密码:是)

我应该怎么做才能访问mysql>我的码头?

标签: mysqldockerdocker-composedockerfile

解决方案


也许你必须检查你的my.cnf. 也许你可以提供你的配置。

使用这个 compose 文件连接到 mysql 工作:

version: "3"
services:
  db:
    image: mysql:5.7.22
    container_name: dbvmssettlementiban
    restart: unless-stopped
    tty: true
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: vms_settlement_iban
      MYSQL_USER: root
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: password
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql

推荐阅读