Подключение к кластеру MySQL® из приложений
В этом разделе представлены настройки для подключения к хостам кластера Managed Service for MySQL® с помощью инструментов командной строки, из графических IDE, из Yandex WebSQL и Docker-контейнера. О подключении из кода вашего приложения см. Примеры кода.
Инструменты командной строки
Примеры кода с заполненным FQDN хоста доступны в консоли управления
Linux (Bash)/macOS (Zsh)
Перед подключением установите утилиту mysql:
sudo apt update && sudo apt install --yes mysql-client
mysql --host=<имя_хоста_MySQL®>.mdb.yandexcloud.kz \
--port=3306 \
--ssl-ca=~/.mysql/root.crt \
--ssl-mode=VERIFY_IDENTITY \
--user=<имя_пользователя> \
--password \
<имя_БД>
mysql --host=<FQDN_любого_хоста_MySQL®> \
--port=3306 \
--ssl-mode=DISABLED \
--user=<имя_пользователя> \
--password \
<имя_БД>
О том, как получить FQDN хоста, см. инструкцию.
При выполнении любой из команд введите пароль пользователя БД.
После подключения к СУБД выполните команду SELECT version();.
При успешном подключении к кластеру и выполнении тестового запроса будет выведена версия MySQL®.
Windows (PowerShell)
Перед подключением скачайтеMySQL Shell.
mysqlsh --host=<FQDN_любого_хоста_MySQL®> `
--port=3306 `
--ssl-ca=<абсолютный_путь_к_файлу_сертификата> `
--ssl-mode=VERIFY_IDENTITY `
--user=<имя_пользователя> `
--password `
--database=<имя_БД> `
--sql
mysqlsh --host=<FQDN_любого_хоста_MySQL®> `
--port=3306 `
--ssl-mode=DISABLED `
--user=<имя_пользователя> `
--password `
--database=<имя_БД>
О том, как получить FQDN хоста, см. инструкцию.
При выполнении любой из команд введите пароль пользователя БД.
После подключения к СУБД выполните команду SELECT version();.
При успешном подключении к кластеру и выполнении тестового запроса будет выведена версия MySQL®.
Подключение с аутентификацией через IAM
К базе данных Managed Service for MySQL® можно подключиться с помощью интерфейса командной строки Yandex Cloud (CLI), используя аутентификацию через IAM. Этот метод доступен для аккаунтов на Яндексе, федеративных аккаунтов и локальных пользователей. Подключение с аутентификацией через IAM не требует получения SSL-сертификата или указания FQDN хостов кластера.
Перед подключением установите клиент MySQL®:
sudo apt update && sudo apt install --yes mysql-client
Подготовьте кластер Managed Service for MySQL® к подключению:
- Перейдите в сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера.
- Включите публичный доступ для хостов кластера:
- Выберите вкладку Хосты.
- Нажмите значок
в строке первого хоста и выберите пункт Редактировать. - Включите опцию Публичный доступ.
- Повторите операцию для остальных хостов кластера.
- Назначьте роль аккаунту пользователя, который будет подключаться к БД:
- Выберите вкладку Права доступа и нажмите кнопку Назначить роли.
- Введите электронную почту пользователя, к которой привязан аккаунт.
- Нажмите кнопку
Добавить роль и выберите рольmanaged-mysql.clusters.connector. - Нажмите кнопку Сохранить.
- Создайте пользователя MySQL®:
- Выберите вкладку Пользователи.
- Нажмите кнопку Создать пользователя.
- Выберите способ аутентификации IAM.
- Выберите аккаунт, которому была назначена роль
managed-mysql.clusters.connector. - Нажмите кнопку Добавить базу данных и выберите нужную базу данных из выпадающего списка.
- Нажмите значок
в столбце Роли и выберите привилегию из выпадающего списка. - Нажмите кнопку Создать.
Чтобы подключиться к БД Managed Service for MySQL®, выполните команду:
yc managed-mysql connect <имя_или_идентификатор_кластера> --db <имя_БД>
Подключение из графических IDE
Подключения проверялись в следующем окружении:
- Ubuntu 20.04, DBeaver:
22.2.4; - MacOS Monterey 12.7:
- JetBrains DataGrip:
2023.3.4; - DBeaver Community:
24.0.0.
- JetBrains DataGrip:
Подключаться из графических IDE можно только к хостам кластера в публичном доступе с использованием SSL-сертификата.
Чтобы избежать ошибок при подключении, сохраните сертификат
- Создайте источник данных:
- Выберите в меню File → New → Data Source → MySQL®.
- На вкладке General:
- Укажите параметры подключения:
- Host — FQDN любого хоста MySQL® или один из особых FQDN;
- Port —
3306; - User, Password — имя и пароль пользователя БД;
- Database — имя БД для подключения.
- Нажмите ссылку Download, чтобы загрузить драйвер соединения.
- Укажите параметры подключения:
- На вкладке SSH/SSL:
- Включите настройку Use SSL.
- В поле CA file укажите путь к файлу SSL-сертификата для подключения.
- Чтобы проверить подключение, нажмите ссылку Test Connection. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.
- Нажмите кнопку OK, чтобы сохранить источник данных.
- Создайте новое соединение с БД:
- Выберите в меню База данных пункт Новое соединение.
- Выберите из списка БД MySQL®.
- Нажмите кнопку Далее.
- Укажите параметры подключения на вкладке Главное:
- Сервер — FQDN любого хоста MySQL® или один из особых FQDN;
- Порт —
3306; - База данных — имя БД для подключения;
- Пользователь, Пароль — имя и пароль пользователя БД.
- На вкладке SSL:
- Включите настройку Использовать SSL.
- В поле Корневой сертификат укажите путь к сохраненному файлу SSL-сертификата.
- В блоке Дополнительные:
- Включите настройку Только SSL.
- Выключите настройку Проверять сертификат сервера.
- Нажмите кнопку Тест соединения ... для проверки подключения. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.
- Нажмите кнопку Готово, чтобы сохранить настройки соединения с БД.
Подготовка к подключению из Docker-контейнера
Чтобы подключаться к кластеру Managed Service for MySQL® из Docker-контейнера, добавьте в Dockerfile строки:
RUN apt-get update && \
apt-get install mysql-client --yes
RUN apt-get update && \
apt-get install wget mysql-client --yes && \
mkdir --parents ~/.mysql && \
wget "https://storage.yandexcloud.kz/cloud-certs/CA.pem" \
--output-document ~/.mysql/root.crt && \
chmod 0600 ~/.mysql/root.crt