Подключение к базе данных в кластере MySQL

К хостам кластера Managed Service for MySQL можно подключиться:

  • Через интернет, если вы настроили публичный доступ для нужного хоста. К таким хостам подключиться можно только используя SSL-соединение.
  • С виртуальных машин Яндекс.Облака, расположенных в той же виртуальной сети. Если к хосту нет публичного доступа, для подключения с таких ВМ SSL-соединение использовать необязательно.

Примечание

Если публичный доступ в вашем кластере настроен только для некоторых хостов, автоматическая смена мастера может привести к тому, что вы не сможете подключиться к мастеру из интернета.

Настройка SSL-сертификата

MySQL-хосты с публичным доступом поддерживают только соединения с SSL-сертификатом. Подготовить сертификат можно так:

$ mkdir ~/.mysql
$ wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" -O ~/.mysql/root.crt
$ chmod 0600 ~/.mysql/root.crt

Строка подключения

Подключиться к БД с помощью команды mysql.

Пример команды с заполненным FQDN хоста вы можете посмотреть в консоли управления, нажав на кнопку Подключиться на странице кластера.

Подключиться из интернета к хосту, для которого настроен публичный доступ, можно только с SSL-сертификатом.

$ mysql --host=<FQDN хоста>
        --port=3306
        --ssl-ca=~/.mysql/root.crt
        --ssl-mode=REQUIRED
        --user=<имя пользователя базы данных>
        --password <имя базы данных>

Если вам не нужно шифровать трафик внутри виртуальной сети при подключении к БД, то можно подключаться к базе без SSL-соединения. Передайте параметр --ssl-mode со значением DISABLED:

$ mysql --host=<FQDN хоста>
        --port=3306
        --ssl-mode=DISABLED
        --user=<имя пользователя базы данных>
        --password <имя базы данных>

Подключение к мастеру

На текущий мастер в кластере всегда указывает хост вида c-<идентификатор кластера>.rw.mdb.yandexcloud.net. Например, для кластера с идентификатором c9qash3nb1v9ulc8j9nm к мастеру можно подключиться так:

$ mysql --host=c-c9qash3nb1v9ulc8j9nm.rw.mdb.yandexcloud.net
        --port=3306
        --ssl-ca=~/.mysql/root.crt
        --ssl-mode=REQUIRED
        --user=<имя пользователя базы данных>
        --password <имя базы данных>