[Docker]:将PHPMyAdmin连接到MySQL不起作用

Pas*_*cal 16 mysql phpmyadmin docker

我正在尝试将PHPMyAdmin-Container连接到MySQL-Container以查看数据库.

我已经启动了MySQL容器 $ docker run --name databaseContainer -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

和PHPMyAdmin-Container通过 $ docker run --name myadmin -d --link databaseContainer:mysql -p 8080:8080 phpmyadmin/phpmyadmin

当我尝试登录PHPMyAdmin时,我得到:mysqli_real_connect():php_network_getaddresses:getaddrinfo failed:Name无法解析

mysqli_real_connect():( HY000/2002):php_network_getaddresses:getaddrinfo失败:名称无法解析

顺便说一句,我还启动了一个wordpress容器,并将它链接到mysql,它的工作原理......

Eug*_*yer 33

不要一个接一个地启动它们,而是使用docker compose.

创建docker-compose.yml文件

version: '2'
services:
  db:
    image: mysql
    environment:
      MYSQL_ROOT_PASSWORD: my-secret-pw
    ports:
      # just if you also want to access it directly from you host
      # node neede for phpmyadmin
      - "3306:3306"
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    depends_on:
      - db
    ports:
      - "8080:8080"
Run Code Online (Sandbox Code Playgroud)

然后docker-compose在您的docker-compose up文件所在的同一文件夹中启动它.使用浏览器访问PHPmyadmin并使用'db'作为数据库的主机名,因为这是docker-compose.yml文件中服务的名称,因此可以使用docker内部DNS服务解析docker-container的实际ip.所有链接都会自动为您设置.

这简单得多 - docker运行过于复杂,对那些东西不实用 - 从来没有.

提示:如果您的计算机上未安装docker-compose,请使用此官方文档https://docs.docker.com/compose/install/(超出范围)进行安装


JL *_*L M 12

phpmyadmin/phpmyadmin(/www.config.inc.php)的配置文件默认说"db"时数据库服务器的主机名:

$ hosts = array('db');

因此,如果您的数据库名称容器不是"db",则应添加具有正确名称的环境变量PMA_HOST =(或PMA_HOSTS,如果是多数据库服务器)(在您的情况下为databaseContainer)

  • 这应该是公认的答案!谢谢 (2认同)