【问题标题】:php cannot connect to mysql in docker-composephp无法在docker-compose中连接到mysql
【发布时间】:2017-01-16 08:12:41
【问题描述】:

这是我的 docker-compose

version: '2'

services:
  nginx:
    image: nginx:1.11.8-alpine
    ports:
      - "8081:80"
    volumes:
      - ./code:/usr/share/nginx/html
      - ./html:/myapp
      - ./site.conf:/etc/nginx/conf.d/site.conf
      - ./default.conf:/etc/nginx/conf.d/default.conf
      - ./error.log:/var/log/nginx/error.log
      - ./nginx.conf:/etc/nginx/nginx.conf
    links:
      - phpfpm
  phpfpm:
    image: php7-fpm:latest
    ports:
      - "9000:9000"
    volumes:
      -  ./code:/usr/share/nginx/html
    links:
      - db_mysql
  db_mysql:
    image: mysql:5.7.17
    volumes:
      - db_data:/var/lib/mysql
    # restart: no
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: wp2017
      MYSQL_USER: wp
      MYSQL_PASSWORD: wp2017
volumes:
  db_data:

这是我如何构建自己的 php7-fpm:lastest

FROM php:7.1-fpm-alpine
RUN docker-php-ext-install mysqli

我无法连接到 mysql 容器

$serverName = 'localhost';
$userName = 'wp';
$password = 'wp2017';
$dbName = 'wp2017';

$link = mysqli_connect($serverName, $userName, $password, $dbName);

if (mysqli_connect_errno()) {
   printf("Connect failed: %s\n", mysqli_connect_error());
  exit();
}

我总是得到错误:“ 警告:mysqli_connect(): (HY000/2002): 第 8 行 /usr/share/nginx/html/db.php 中没有这样的文件或目录 连接失败:没有这样的文件或目录”

我在哪里运行命令 sudo netstat -tulpn | grep :3306

我明白了 tcp6 0 0 :::3306 :::* LISTEN 15362/docker-proxy

请帮忙!

【问题讨论】:

  • 首先会尝试使用您的本地IP进行连接。
  • 我也无法连接。我在本地(Ubuntu 14.04)安装了一个 mysql 服务器,但我已经停止了它。似乎是原因?
  • 你确定mysqli安装正确吗?查看 phpinfo 是否正在运行
  • @Pingbeat 现在对我有用。这是我修复的 $serverName = 'db_mysql:3306'; // 不是本地主机,127.0.0.1...

标签: mysql docker-compose


【解决方案1】:

更改 PHP 脚本

$serverName = 'db_mysql';

它会起作用的。

【讨论】:

  • 感谢帮助,但这是为什么呢?因为docker文件中的名字是mysql?所以如果我想连接到 localhost 我应该把它命名为 localhost?
  • 你可以给它起一个像container_name: yourname 这样的名字,然后用它代替本地主机,它应该可以工作。
猜你喜欢
  • 2020-02-12
  • 2021-06-16
  • 2018-06-07
  • 2017-07-05
  • 2020-06-04
  • 1970-01-01
  • 2019-08-02
相关资源
最近更新 更多