:连接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 up
在docker-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在你的情况)