laravel4.2 连接mysql,Laravel 4.2的Docker在连接到DB时抛出错误:SQLSTATE[HY000][2002]没有这样的文件或目录...

我需要一个老版本的Laravel应用程序工作。 它使用的是Laravel版本4.2.2。

我有一个docker设置:version: '3.5'

services:

laravel:

depends_on:

- database

...

database:

image: mysql:5

hostname: database

environment:

MYSQL_ROOT_PASSWORD: mypass

MYSQL_DATABASE: mydb

MYSQL_USER: myuser

MYSQL_PASSWORD: mypass

我将数据库数据添加到config(Laravel 4.2)'connections' => array (

'mysql' => array (

'driver' => 'mysql',

'host' => 'database', // as name of db container

'database' => 'mydb', // this database exists, I can see in PhpMyAdmin

'port' => '3306',

'username' => 'root', // I can login with these credentials in PhpMyAdmin and CLI

'password' => 'mypass',

'charset' => 'utf8',

'collation' => 'utf8_unicode_ci',

'prefix' => '',

),

...

我可以使用这些凭据登录到phpmyadmin容器,也可以使用mysql-h database-u root-p从laravel容器的CLI登录。

如果我在LaravelIlluminate/database/connectors/connector.php类中转储连接,我会看到正在使用正确的配置。public function createConnection($dsn, array $config, array $options)

{

$username = array_get($config, 'username');

$password = array_get($config, 'password');

// dd($dsn);

// dd($config);

// dd($username); dd($password);

return new PDO($dsn, $username, $password, $options);

}

给予:

>

string(59)“mysql:unix_socket=/var/run/mysqld/mysqld.sock;dbname=mydb”

数组(11){[“driver”]=>string(5)“mysql”[“host”]=>string(8)“database”[“port”]=>string(4)“3306”[“database”]=>string(4)“root”[“password”]=>string(21)“mypass”[“charset”]=>string(4)“utf8”[“collation”]=>string(15)“utf8_unicode_ci”[“prefix”]=>string(0)“[”unix_socket“]=>string(27)”

超级用户`(用户名)

mypass(密码)

为什么我仍然得到错误?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值