我需要一个老版本的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(密码)
为什么我仍然得到错误?