我是Laravel的不定期用户,正在尝试连接到远程SQL数据库。
我已经使用了artisan命令来创建迁移,并且可以从命令行成功连接到数据库。但是,当我尝试加载应用程序时,连接失败。
Could not connect to the database. Please check your configuration. error:PDOException: SQLSTATE[HY000] [1045] Access denied for user 'myuser'@'222.222.222.222' (using password: YES) in ... {file location}
工匠和实际的应用程序框架在做什么方面不同,该连接在两者之间的响应不同?
这是database.php文件中的mysql连接:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '123.123.123.123'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'mydb'),
'username' => env('DB_USERNAME', 'myuser'),
'password' => env('DB_PASSWORD', 'mypass'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '','strict' => true,
'engine' => null,
'sslmode' => 'require',
'options' => array(
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
PDO::MYSQL_ATTR_SSL_KEY => 'certs/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => 'certs/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => 'certs/server-ca.pem',
),
这是本地环境文件:
DB_CONNECTION=mysql
DB_HOST=123.123.123.123
DB_PORT=3306
DB_DATABASE=mydb
DB_USERNAME=myuser
DB_PASSWORD=mypass
我正在本地运行该应用程序,但是MySQl服务器是远程的。
事实证明,根本原因是PDO不喜欢Google Cloud SQL生成的证书。