无法通过 SSL 将 Laravel 连接到 MySQL。 'PDO::__construct(): this stream does not support SSL/crypto'
Can't connect Laravel through SSL to MySQL. 'PDO::__construct(): this stream does not support SSL/crypto'
当我将配置添加到 Laravel/Lumen 以通过 ssl 连接到 MySQL 服务器时出现此错误。
2018-05-16 10:42:45] lumen.ERROR: exception 'ErrorException' with message 'PDO::__construct(): this stream does not support SSL/crypto' in /var/www/project/vendor/illuminate/database/Connectors/Connector.php:56
我检查了安装的 php 模块。它显示 openssl
与 php -m
一起安装,php-mysqlnd
已安装。
这是我的配置:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', 3306),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => env('DB_PREFIX', ''),
'timezone' => env('DB_TIMEZONE', '+00:00'),
'strict' => false,
'options' => array(
PDO::MYSQL_ATTR_SSL_KEY => '/etc/ssl/certs/mysqlssl/key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/etc/ssl/certs/mysqlssl/cert.pem',
PDO::MYSQL_ATTR_SSL_CA => '/etc/ssl/certs/mysqlssl/ca-cert.pem',
),
并显示 mysql 有 ssl 运行:
事实证明不能使用 localhost 或者它不会使用 TCP/IP 而是它将使用不使用 SSL 的 unix 套接字。
当我将配置添加到 Laravel/Lumen 以通过 ssl 连接到 MySQL 服务器时出现此错误。
2018-05-16 10:42:45] lumen.ERROR: exception 'ErrorException' with message 'PDO::__construct(): this stream does not support SSL/crypto' in /var/www/project/vendor/illuminate/database/Connectors/Connector.php:56
我检查了安装的 php 模块。它显示 openssl
与 php -m
一起安装,php-mysqlnd
已安装。
这是我的配置:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', 3306),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => env('DB_PREFIX', ''),
'timezone' => env('DB_TIMEZONE', '+00:00'),
'strict' => false,
'options' => array(
PDO::MYSQL_ATTR_SSL_KEY => '/etc/ssl/certs/mysqlssl/key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/etc/ssl/certs/mysqlssl/cert.pem',
PDO::MYSQL_ATTR_SSL_CA => '/etc/ssl/certs/mysqlssl/ca-cert.pem',
),
并显示 mysql 有 ssl 运行:
事实证明不能使用 localhost 或者它不会使用 TCP/IP 而是它将使用不使用 SSL 的 unix 套接字。