Я работаю над проектом, в котором мне нужно использовать SSL для подключения к базе данных MySQL. Это работает в ванильном PHP, но не тогда, когда я пытаюсь использовать Laravel.
Рабочий PHP-код:
<?php
$host = 'xxx';
$db = 'xxx';
$user = 'xxx';
$pass = 'xxx';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
PDO::MYSQL_ATTR_SSL_CA => "../rootCA.pem",
];
try {
$pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
$data = $pdo->query('SELECT * FROM x LIMIT 100')->fetchAll(PDO::FETCH_ASSOC);
var_export($data);
Но когда я пытаюсь подключиться через Laravel, я получаю следующую ошибку:
C:\*\*\vendor\laravel\framework\src\Illuminate\Database\Connection.php on line 330
[Fri Sep 14 11:35:05 2018] ::1:54869 [500]: /data - Allowed memory size of 134217728 bytes exhausted (tried to allocate 4096 bytes) in C:\*\*\vendor\laravel\framework\src\Illuminate\Database\Connection.php on line 330
Конфигурация My Laravel (5.7) для подключения:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'xxx'),
'port' => env('DB_PORT', 'xxx'),
'database' => env('DB_DATABASE', 'xxx'),
'username' => env('DB_USERNAME', 'xxx'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
'options' => array(
PDO::MYSQL_ATTR_SSL_CA => '../rootCA.pem',
PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false
),
],
Есть идеи? =)