Php Laravel SQL连接-Artisan迁移可以工作,但应用程序可以';t连接

Php Laravel SQL连接-Artisan迁移可以工作,但应用程序可以';t连接,php,mysql,laravel,pdo,Php,Mysql,Laravel,Pdo,我是一个不正规的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'

我是一个不正规的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} 
artisan和实际的应用程序框架做了哪些不同的事情,使得这两个应用程序之间的连接会有不同的响应

下面是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生成的证书。

您的远程数据库身份验证是基于隧道的吗?如果是,那么您必须创建隧道,并且您需要打开该隧道才能在应用程序中使用DB连接。事实证明,根本原因是PDO不喜欢由Google Cloud SQL生成的证书。请立即解决它。您现在可以回答自己的问题。