:连接PHPMyAdmin到MySQL不起作用

我试图连接一个PHPMyAdmin容器到一个MySQL容器来查看数据库。

我已经通过$ docker run --name databaseContainer -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql了MySQL容器 – 名称$ docker run --name databaseContainer -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

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

当试图loginPHPMyAdmin,我得到:mysqli_real_connect():php_network_getaddresses:getaddrinfo失败:名称不解决

mysqli_real_connect():(HY000 / 2002):php_network_getaddresses:getaddrinfo失败:名称不能parsing

顺便说一下,我也开始了一个WordPress的容器,也链接到MySQL,它的工作…

而不是逐一开始,使用docker撰写。

创build一个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" 

然后用docker-compose updocker-compose.yml文件docker-compose.yml文件夹中启动它。 当phpmyadmin打开时,input“db”作为主机名,因为这是服务的名称。 所有的链接都是为你设置的,并且可以开箱即用。

这更简单 – docker运行过度复杂的事情,并不是那些事情的实际 – 从来没有。

提示:如果未安装docker-compose,请使用官方说明安装https://docs.docker.com/compose/install/

phpmyadmin / phpmyadmin(/www/config.inc.php)的configuration文件默认情况下表示数据库服务器的主机名,如果'db':

$ hosts = array('db');

因此,如果你的数据库名称容器不是'db',你应该添加环境variablesPMA_HOST =(或PMA_HOSTS如果多数据库服务器)与正确的名称(databaseContainer在你的情况)