相关疑难解决方法(0)

使用Docker我收到错误:"SQLSTATE [HY000] [2002]没有这样的文件或目录"

我正在使用Docker创建一个容器来测试我的Mac上基于PHP和MySQL构建的Web应用程序.我的PHP应用程序是使用Fat-Free Framework for MVC和路由构建的.我有两个Dockerfiles,一个用于MySQL,一个用于PHP.我已经成功使用了测试Docker应用程序,所以我相信我的图像安装正确.

错误的主要部分:

Internal Server Error

SQLSTATE[HY000] [2002] No such file or directory

[fatfree/lib/DB/SQL.php:466] PDO->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password',array(1002=>'SET NAMES utf8;'))
[fatfree/app/Controllers/Controller.php:24] DB\SQL->__construct('mysql:host=127.0.0.1;port=3306;dbname=robohome','root','password')
Run Code Online (Sandbox Code Playgroud)

注意,如果我使用127.0.0.1而不是我连接localhost得到一个略有不同的错误,说:SQLSTATE[HY000] [2002] Connection refused

我的PHP Dockerfile:

FROM php:5.6-apache

RUN docker-php-ext-install mysqli pdo pdo_mysql
RUN a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)

我的MySQL Dockerfile:

FROM mysql:5.7

ENV MYSQL_ROOT_PASSWORD password
ENV MYSQL_DATABASE robohome

COPY ./schema.sql /docker-entrypoint-initdb.d/
Run Code Online (Sandbox Code Playgroud)

我的Controller.php文件错误提及第24行:

<?php

namespace Controllers;

class Controller
{
    protected $f3;
    protected $db;

    public function __construct()
    {
        $f3 = \Base::instance();
        $this->f3 = $f3;

        $mysqlServerName = …
Run Code Online (Sandbox Code Playgroud)

php mysql docker dockerfile docker-compose

26
推荐指数
2
解决办法
3万
查看次数

标签 统计

docker ×1

docker-compose ×1

dockerfile ×1

mysql ×1

php ×1