首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker (Ubuntu 16.04) Apache/PHP7 7/Mysql5 5_7-数据库:连接失败:连接被拒绝

问Docker (Ubuntu 16.04) Apache/PHP7 7/Mysql5 5_7-数据库:连接失败:连接被拒绝
EN

Stack Overflow用户
提问于 2017-10-11 11:59:21
回答 1查看 999关注 0票数 0

我正在尝试安装对接容器:Apache/PHP7 7/Mysql 5.7,通过docker-在Ubuntu16.04上构建。

问题是我没有从index.php (localhost:8080)获得数据库连接。如果我试图连接,它会说:“连接失败:连接被拒绝”。

Apachephp7dockerfile:https://github.com/nimmis/docker-apache-php7/blob/master/Dockerfile

这些文件夹是:

apache-php7 7(包括Dockerfile)

html (包括index.php)

mysql数据

docker-compose.yml:

代码语言:javascript
复制
version: '2'

services:
  php:
    build: apache_php7
    container_name: apache_php7
    ports:
      - "8080:80"
      - "443:443"
    volumes:
      - ./html:/var/www/html
    links:
      - db
  db:
    image: mysql:5.7
    container_name: mysql_5_7
    volumes:
     - ./mysql:/var/lib/mysql
    ports:
     - "127.0.0.1:3306:3306"
    environment:
     - MYSQL_ROOT_PASSWORD=test
     - MYSQL_USER=admin
     - MYSQL_PASSWORD=test     
     - MYSQL_DATABASE=database

index.php (php-代码段)

代码语言:javascript
复制
<?php
$servername = "127.0.0.1";
$username = "admin";
$password = "test";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?> 

我搜索了类似的线程,并尝试使用PDO等,但是没有什么效果。

我可以通过终端手动登录mysql容器,命令为: docker -it bash,并通过"mysql -u root -p“-> passwort: test登录。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-11 13:18:44

已经解决了。首先,我通过以下方法获得正在运行的mysql容器的名称/id

代码语言:javascript
复制
docker ps

然后我从命令中得到了一个ip地址

代码语言:javascript
复制
docker inspect <name of container> | grep IPAddress

就像在这个截图里。

奈杰尔的命令

我还在我的docker-Compose.yml中修改了这一行:

代码语言:javascript
复制
    volumes:
    - /var/lib/mysql:/var/lib/mysql

感谢奈杰伦和杰科里的回答。现在一切都正常了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46687673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档