Не удается подключить приложение Laravel к базе данных, которая размещена на Azzure через ssl - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь подключить приложение 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 следующее, помимо определения имени пользователя, пароля хоста и имени БД. Файл BaltimoreCyberTrust Root .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

В конфигурации / базе данных. 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')
        ] : [],

Не уверен, что это неправильно, есть идеи?

Я получаю следующие ошибки:

"error": "SQLSTATE [HY000] [2002] Была сделана попытка получить доступ к сокету способом, запрещенным его правами доступа. [{" File ":" D: \ главная \ сайт \ wwwroot \ поставщика \ Laravel \ рамки \ SRC \ Осветите \ Database \ Connection php», "линия.": 624, "функция": "runQueryCallback", "класс" : "Подсветка \ База данных \ Соединение", "тип": "->", "args": ["select * from backend_token limit 1", [], {}]},

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...