mysql - 无法连接到docker容器中的MySQL数据库

标签 mysql wordpress docker nginx docker-compose

老实说我已经厌倦了。我已经尝试了所有可能的解决方案,但它仍然拒绝连接。

这是我的 docker-compose 文件:

version: '3'

services:
  # Database
  db:
    image: mysql:5.7
    container_name: db
    restart: always
    env_file: .env
    environment:
      - MYSQL_ROOT_HOST=%
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=$MYSQL_DATABASE
      - MYSQL_USER=$MYSQL_USER
      - MYSQL_PASSWORD=$MYSQL_PASSWORD
    networks:
      - backend
  # Wordpress
  wp:
    depends_on:
      - db
    image: wordpress:php7.3-fpm
    container_name: wordpress
    restart: always
    env_file: .env
    environment:
      - WORDPRESS_DB_HOST=db:3306
      - WORDPRESS_DB_USER=$MYSQL_USER
      - WORDPRESS_DB_PASSWORD=$MYSQL_PASSWORD
      - WORDPRESS_DB_NAME=$MYSQL_DATABASE
    volumes:
      - ./wordpress:/var/www/html
    networks:
      - backend
  # Nginx
  nginx:
    depends_on:
      - wp
    image: nginx
    restart: always
    ports:
      - "80:80"
    volumes:
      - ./wordpress:/var/www/html
      - ./nginx-conf:/etc/nginx/conf.d
    networks:
      - backend

networks:
  backend:
    driver: bridge

我尝试过 127.0.0.1、0.0.0.0、db、docker inform db 来获取容器的 IP 地址。全部都无法连接。我使用过 Sequel Pro、MySQL Workbench 和 DataGrip。

设置工作完全正常。只是我无法连接到容器外部的数据库。

我什至检查了容器中的mysql主机权限并得到:

% root

% wordpress (name of the user I created)

...

我错过了什么吗?

最佳答案

为了使用 SQL 客户端从主机访问数据库,您需要将 MYSQL 数据库端口映射到主机。

在您的 Compose 文件中将端口映射添加到您的数据库服务。

db: 
  ...
  ports:
    - "3306:3306"

我相信您正在使用基于 WordPress 服务的默认端口。

然后将 SQL 客户端配置为 127.0.0.1 和端口 3306。

关于mysql - 无法连接到docker容器中的MySQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58889953/

相关文章:

python - 升级到 Ubuntu 16.04 现在 MySQL-python 依赖被破坏了

php - 多个计数和求和 MySQL 函数在 MySQL 结果中使用多个联接返回错误值

php - 刷新页面时用户已注销

从一个 docker 容器到另一个容器的 REST 请求失败

docker - 如何使docker撰写状态运行,当前在docker撰写后停止

azure - Docker-compose,条件语句? (例如系统相关驱动程序)

php - 从复选框插入mysql一些未插入的复选框

android - 把每一个字符串都编码成BASE64来存入Mysql好不好?

php - ssl 网站上的 WordPress 不安全内容

javascript - 带有缩略图的 WordPress 扩展网格