Подписывайтесь на наш Telegram канал и будьте в курсе всех событий.
Limon96

Если вы видите это, значит, я еще не придумал, что написать.

Подключение к Yandex.Cloud MySQL на Laravel

При развертывании базы данных на серверах Yandex.Cloud может возникнуть проблема с подключением.

Managed Service for MySQL предоставляет два варианта подключения:

  1. Через интернет, если вы настроили публичный доступ для нужного хоста. К таким хостам подключиться можно только используя SSL-соединение.
  2. С виртуальных машин Yandex Cloud, расположенных в той же облачной сети. Если к хосту нет публичного доступа, для подключения с таких виртуальных машин необязательно использовать SSL-соединение.

Документация Yandex.Cloud

Пример подключения:

config/database.php

'mysql' => [
    'driver' => 'mysql',
    'url' => env('DATABASE_URL'),
    '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' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => [
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,
    ],
],

В options пишем параметры:

 PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
 PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false,

В файле .env добавляем параметр:

MYSQL_ATTR_SSL_CA="./CA.pem"

Где “./CA.pem” – это путь к файлу полученному от Yandex.Cloud:

https://storage.yandexcloud.net/cloud-certs/CA.pem
0