无法将Laravel应用程序连接到通过SSL托管在Azzure上的数据库

时间:2020-04-11 20:25:27

标签: php laravel

我正在努力将Laravel应用程序与MYSQL数据库连接。我可以通过MySQL Workbench以及PDO连接自定义字符串连接到数据库,但是使用Laravel无法连接。不知道出什么问题了。

自定义连接字符串:它的工作文件位于laravel应用程序内。我把它只是为了检查

$conn = mysqli_init();
mysqli_ssl_set($conn,NULL,NULL, "BaltimoreCyberTrustRoot.crt.pem", NULL, NULL) ; 
mysqli_real_connect($conn, 'sever.host', 'server-username', 'server-password', 'database', 3306, MYSQLI_CLIENT_SSL);
if (mysqli_connect_errno($conn)) {
die('Failed to connect to MySQL: '.mysqli_connect_error());
}
else{
    echo "Connected";
}

然后我在下面的.env文件中添加了文件,除了定义了用户名密码主机和数据库名称。 BaltimoreCyber​​TrustRoot.crt.pem文件与.env文件位于同一路径上

MYSQL_SSL_KEY=BaltimoreCyberTrustRoot.crt.pem
MYSQL_SSL_CERT=BaltimoreCyberTrustRoot.crt.pem
MYSQL_SSL_CA=BaltimoreCyberTrustRoot.crt.pem
MYSQL_SSL_CIPHER=BaltimoreCyberTrustRoot.crt.pem

MYSQL_SSL=true

在config / database.php中看起来像这样

 'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
            'options' => (env('MYSQL_SSL')) ? [
            PDO::MYSQL_ATTR_SSL_KEY    => env('MYSQL_SSL_KEY'),  // /path/to/key.pem
            PDO::MYSQL_ATTR_SSL_CERT   => env('MYSQL_SSL_CERT'), // /path/to/cert.pem
            PDO::MYSQL_ATTR_SSL_CA     => env('MYSQL_SSL_CA'),   // /path/to/ca.pem
            PDO::MYSQL_ATTR_SSL_CIPHER => env('MYSQL_SSL_CIPHER')
        ] : [],

不知道出什么问题了吗?

我得到这些错误:

“错误”:“ SQLSTATE [HY000] [2002]试图以其访问权限禁止的方式访问套接字。 [{“ file”:“ D:\ home \ site \ wwwroot \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connection.php”,“ line”:624,“ function”:“ runQueryCallback”,“ class” :“ Illuminate \ Database \ Connection”,“类型”:“->”,“ args”:[“从* backend_token限制1选择*”,[],{}]},

0 个答案:

没有答案