Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Managed Service for MySQL®
  • Начало работы
    • Все инструкции
      • Подключение к базе данных
      • SQL-запросы в Yandex WebSQL
      • Управление базами данных
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Обучающие курсы

В этой статье:

  • Настройка групп безопасности
  • Получение SSL-сертификата
  • FQDN хостов MySQL®
  • Получить FQDN хоста
  • Особые FQDN
  • Текущий мастер
  • Наименее отстающая реплика
  • Подключение из графических IDE
  • Подключение из Yandex WebSQL
  • Подготовка к подключению из Docker-контейнера
  • Примеры строк подключения
  • Bash
  • Go
  • Java
  • Node.js
  • ODBC
  • PHP
  • PowerShell
  • Python
  • Ruby
  1. Пошаговые инструкции
  2. Базы данных
  3. Подключение к базе данных

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

Статья создана
Yandex Cloud
Улучшена
Dmitry A.
Обновлена 24 июля 2025 г.
  • Настройка групп безопасности
  • Получение SSL-сертификата
  • FQDN хостов MySQL®
    • Получить FQDN хоста
  • Особые FQDN
    • Текущий мастер
    • Наименее отстающая реплика
  • Подключение из графических IDE
  • Подключение из Yandex WebSQL
  • Подготовка к подключению из Docker-контейнера
  • Примеры строк подключения
    • Bash
    • Go
    • Java
    • Node.js
    • ODBC
    • PHP
    • PowerShell
    • Python
    • Ruby

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

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

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

Важно

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

Максимальное количество подключений определяется настройкой Max connections, которая зависит от класса хостов.

Подробнее см. в разделе Сеть и кластеры в Managed Service for MySQL®.

Настройка групп безопасностиНастройка групп безопасности

Для подключения к кластеру необходимо, чтобы группы безопасности содержали правила, которые разрешают трафик с определенных портов, IP-адресов или из других групп безопасности.

Настройки правил будут различаться в зависимости от выбранного способа подключения:

Через интернет
С ВМ в Yandex Cloud

Настройте все группы безопасности кластера так, чтобы они разрешали входящий трафик с любых IP-адресов на порт 3306. Для этого создайте следующее правило для входящего трафика:

  • Диапазон портов — 3306.
  • Протокол — TCP.
  • Источник — CIDR.
  • CIDR блоки — 0.0.0.0/0.
  1. Настройте все группы безопасности кластера так, чтобы они разрешали входящий трафик из группы безопасности, в которой находится ВМ, на порт 3306. Для этого в этих группах создайте следующее правило для входящего трафика:

    • Диапазон портов — 3306.
    • Протокол — TCP.
    • Источник — Группа безопасности.
    • Группа безопасности — если кластер и ВМ находятся в одной и той же группе безопасности, выберите значение Текущая (Self). В противном случае укажите группу безопасности ВМ.
  2. Настройте группу безопасности, в которой находится ВМ так, чтобы можно было подключаться к ВМ и был разрешен трафик между ВМ и хостами кластера.

    Пример правил для ВМ:

    • Для входящего трафика:

      • Диапазон портов — 22.
      • Протокол — TCP.
      • Источник — CIDR.
      • CIDR блоки — 0.0.0.0/0.

      Это правило позволяет подключаться к ВМ по протоколу SSH.

    • Для исходящего трафика:

      • Диапазон портов — 0-65535.
      • Протокол — Любой (Any).
      • Назначение — CIDR.
      • CIDR блоки — 0.0.0.0/0.

      Это правило разрешает любой исходящий трафик, что позволяет не только подключаться к кластеру, но и устанавливать на ВМ необходимые для этого сертификаты и утилиты.

Примечание

Вы можете задать более детальные правила для групп безопасности, например, разрешающие трафик только в определенных подсетях.

Группы безопасности должны быть корректно настроены для всех подсетей, в которых будут размещены хосты кластера. При неполных или некорректных настройках групп безопасности можно потерять доступ к кластеру.

Подробнее о группах безопасности см. в разделе Группы безопасности.

Получение SSL-сертификатаПолучение SSL-сертификата

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

Linux (Bash)/macOS (Zsh)
Windows (PowerShell)
mkdir -p ~/.mysql && \
wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" \
     --output-document ~/.mysql/root.crt && \
chmod 0600 ~/.mysql/root.crt

Сертификат будет сохранен в файле ~/.mysql/root.crt.

mkdir $HOME\.mysql; curl.exe -o $HOME\.mysql\root.crt https://storage.yandexcloud.net/cloud-certs/CA.pem

Сертификат будет сохранен в файле $HOME\.mysql\root.crt.

Корпоративные политики и антивирус могут блокировать скачивание сертификата. Подробнее см. в разделе Вопросы и ответы.

Для использования графических IDE сохраните сертификат в локальную папку и укажите путь к нему в настройках подключения.

FQDN хостов MySQL®FQDN хостов MySQL®

Для подключения к хосту потребуется его FQDN — доменное имя. Вы можете использовать FQDN конкретного хоста в кластере или один из особых FQDN, всегда указывающий на текущий хост-мастер или наименее отстающую реплику.

Пример FQDN хоста:

rc1a-goh2a9tr********.mdb.yandexcloud.net

Получить FQDN хостаПолучить FQDN хоста

FQDN хоста MySQL® можно получить несколькими способами:

  • Посмотрите FQDN в консоли управления:

    1. Перейдите на страницу кластера.
    2. Перейдите в раздел Хосты.
    3. Скопируйте значение в столбце FQDN хоста.
  • Скопируйте команду для подключения к кластеру в консоли управления. Команда содержит заполненный FQDN хоста. Чтобы получить команду, перейдите на страницу кластера и нажмите кнопку Подключиться.

  • Запросите список хостов в кластере с помощью CLI или API.

Особые FQDNОсобые FQDN

Наравне с обычными FQDN, Managed Service for MySQL® предоставляет несколько особых FQDN, которые также можно использовать при подключении к кластеру.

В кластерах из нескольких хостов особые FQDN могут некоторое время (до 10 минут) указывать на старый хост, даже если он сменил роль (например, из мастера стал репликой). Если используется особый FQDN, который указывает на текущий мастер, то часть запросов на запись может завершиться неудачей — они могут быть направлены к реплике. Это связано с тем, что на обновление DNS-записей для особых FQDN требуется время. Если запрос на запись завершился ошибкой, повторите его позднее.

Важно

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

Текущий мастерТекущий мастер

FQDN вида c-<идентификатор_кластера>.rw.mdb.yandexcloud.net всегда указывает на текущий хост-мастер в кластере. Идентификатор кластера можно получить со списком кластеров в каталоге.

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

Важно

Используйте подключение с помощью особого FQDN хоста-мастера только для процессов, которые допускают недоступность базы данных на запись продолжительностью до 10 минут.

Наименее отстающая репликаНаименее отстающая реплика

FQDN вида c-<идентификатор_кластера>.ro.mdb.yandexcloud.net указывает на наименее отстающую от мастера реплику. Идентификатор кластера можно запросить со списком кластеров в каталоге.

Особенности:

  • При подключении к этому FQDN разрешено выполнять только операции чтения.
  • Если в кластере нет активных реплик, то подключиться к этому FQDN невозможно: соответствующая CNAME-запись в DNS будет указывать на пустой объект (null).

Подключение из графических IDEПодключение из графических IDE

Подключения проверялись в следующем окружении:

  • Ubuntu 20.04, DBeaver: 22.2.4;
  • MacOS Monterey 12.7:
    • JetBrains DataGrip: 2023.3.4;
    • DBeaver Community: 24.0.0.

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

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

DataGrip
DBeaver
  1. Создайте источник данных:
    1. Выберите в меню File → New → Data Source → MySQL®.
    2. На вкладке General:
      1. Укажите параметры подключения:
        • Host — FQDN любого хоста MySQL® или один из особых FQDN;
        • Port — 3306;
        • User, Password — имя и пароль пользователя БД;
        • Database — имя БД для подключения.
      2. Нажмите ссылку Download, чтобы загрузить драйвер соединения.
    3. На вкладке SSH/SSL:
      1. Включите настройку Use SSL.
      2. В поле CA file укажите путь к файлу SSL-сертификата для подключения.
  2. Чтобы проверить подключение, нажмите ссылку Test Connection. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.
  3. Нажмите кнопку OK, чтобы сохранить источник данных.
  1. Создайте новое соединение с БД:
    1. Выберите в меню База данных пункт Новое соединение.
    2. Выберите из списка БД MySQL®.
    3. Нажмите кнопку Далее.
    4. Укажите параметры подключения на вкладке Главное:
      • Сервер — FQDN любого хоста MySQL® или один из особых FQDN;
      • Порт — 3306;
      • База данных — имя БД для подключения;
      • Пользователь, Пароль — имя и пароль пользователя БД.
    5. На вкладке SSL:
      1. Включите настройку Использовать SSL.
      2. В поле Корневой сертификат укажите путь к сохраненному файлу SSL-сертификата.
      3. В блоке Дополнительные:
        1. Включите настройку Только SSL.
        2. Выключите настройку Проверять сертификат сервера.
  2. Нажмите кнопку Тест соединения ... для проверки подключения. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.
  3. Нажмите кнопку Готово, чтобы сохранить настройки соединения с БД.

Подключение из Yandex WebSQLПодключение из Yandex WebSQL

Вы можете отправлять SQL-запросы к базам данных в кластере Managed Service for MySQL® с помощью сервиса Yandex WebSQL.

WebSQL — это сервис Yandex Cloud, который позволяет подключаться к кластерам управляемых баз данных, работать с БД, таблицами и схемами и выполнять запросы. Сервис работает в браузере, не требует дополнительной авторизации и предлагает удобные подсказки для работы с SQL-командами.

Чтобы подключаться из WebSQL к кластеру Managed Service for MySQL®, необходимо создать подключение:

  1. Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
  2. Нажмите на имя нужного кластера.
  3. Включите опцию Доступ из WebSQL в настройках кластера, если она еще не включена.
  4. Выберите вкладку WebSQL.
  5. Нажмите кнопку Создать подключение и укажите параметры подключения:
    • Имя подключения.
    • Тип базы данных — MySQL®.
    • Кластер — будет автоматически выбран текущий кластер MySQL®.
    • Имя пользователя, от лица которого вы будете подключаться к базе данных в кластере.
    • Пароль пользователя.
    • Базы данных, к которым вы хотите подключиться. Вы можете подключиться только к существующим в этом кластере БД. У пользователя, которого вы указали, должен быть настроен доступ к ним.
  6. Нажмите кнопку Создать.

Чтобы открыть SQL-редактор, нажмите на созданное подключение на вкладке WebSQL.

Подробнее о работе с WebSQL см. в документации сервиса.

Подготовка к подключению из Docker-контейнераПодготовка к подключению из Docker-контейнера

Чтобы подключаться к кластеру Managed Service for MySQL® из Docker-контейнера, добавьте в Dockerfile строки:

Подключение без SSL
Подключение с SSL
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.net/cloud-certs/CA.pem" \
         --output-document ~/.mysql/root.crt && \
    chmod 0600 ~/.mysql/root.crt

Примеры строк подключенияПримеры строк подключения

Примеры для Linux проверялись в следующем окружении:

  • Виртуальная машина в Yandex Cloud с Ubuntu 20.04 LTS.
  • Bash: 5.0.16.
  • Python: 3.8.2; pip3: 20.0.2.
  • PHP: 7.4.3.
  • OpenJDK: 11.0.8; Maven: 3.6.3.
  • Node.JS: 10.19.0, npm: 6.14.4.
  • Go: 1.13.8.
  • Ruby: 2.7.0p0.
  • unixODBC: 2.3.6.

Примеры для Windows проверялись в следующем окружении:

  • Локальная машина с Windows 10 Pro build 19042.1052.
  • PowerShell: 5.1.19041.
  • cURL: 7.55.1 WinSSL.

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

BashBash

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

sudo apt update && sudo apt install --yes mysql-client
Подключение с SSL
Подключение без SSL
mysql --host=<имя_хоста_MySQL®>.mdb.yandexcloud.net \
      --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®.

GoGo

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

sudo apt update && sudo apt install --yes golang git && \
go get github.com/go-sql-driver/mysql
Подключение с SSL
Подключение без SSL

connect.go

package main

import (
  "io/ioutil"
  "crypto/tls"
  "crypto/x509"
  "database/sql"
  "fmt"
  "github.com/go-sql-driver/mysql"
)

const (
  host     = "<FQDN_любого_хоста_MySQL®>"
  port     = 3306
  user     = "<имя_пользователя>"
  password = "<пароль_пользователя>"
  dbname   = "<имя_БД>"
)

func main() {
  rootCertPool := x509.NewCertPool()
  pem, err := ioutil.ReadFile("/home/<домашняя_директория>/.mysql/root.crt")
  if err != nil {
    panic(err)
  }
  if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {
    panic("Failed to append PEM.")
  }

  mysql.RegisterTLSConfig("custom", &tls.Config{
    RootCAs: rootCertPool,
  })

  mysqlInfo := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?tls=custom",
    user, password, host, port, dbname)
  conn, err := sql.Open("mysql", mysqlInfo)
  if err != nil {
    panic(err)
  }

  defer conn.Close()

  q, err := conn.Query("SELECT version()")
  if err != nil {
    panic(err)
  }

  var result string

  for q.Next() {
   q.Scan(&result)
   fmt.Println(result)
  }
}

При этом способе подключения в коде необходимо указывать полный путь к сертификату root.crt для MySQL® в переменной ca.

connect.go

package main

import (
  "database/sql"
  "fmt"
  _ "github.com/go-sql-driver/mysql"
)

const (
  host     = "<FQDN_любого_хоста_MySQL®>"
  port     = 3306
  user     = "<имя_пользователя>"
  password = "<пароль_пользователя>"
  dbname   = "<имя_БД>"
)

func main() {
  mysqlInfo := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s",
    user, password, host, port, dbname)
  conn, err := sql.Open("mysql", mysqlInfo)
  if err != nil {
    panic(err)
  }

  defer conn.Close()

  q, err := conn.Query("SELECT version()")
  if err != nil {
    panic(err)
  }

  var result string

  for q.Next() {
   q.Scan(&result)
   fmt.Println(result)
  }
}

О том, как получить FQDN хоста, см. инструкцию.

Подключение:

go run connect.go

При успешном подключении к кластеру и выполнении тестового запроса будет выведена версия MySQL®.

JavaJava

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

  1. Установите зависимости:

    sudo apt update && sudo apt install --yes default-jdk maven
    
  2. Добавьте SSL-сертификат в хранилище доверенных сертификатов Java (Java Key Store), чтобы драйвер MySQL® мог использовать этот сертификат при защищенном подключении к хостам кластера. При этом задайте пароль в параметре -storepass для защиты хранилища:

    cd ~/.mysql && \
    sudo keytool -importcert \
                 -alias YandexCA \
                 -file root.crt \
                 -keystore YATrustStore \
                 -storepass <пароль_хранилища_сертификатов> \
                 --noprompt
    

    Где storepass — пароль хранилища сертификатов, не короче 6 символов.

  3. Создайте директорию для проекта Maven:

    cd ~/ && mkdir -p project/src/java/com/example && cd project/
    
  4. Создайте конфигурационный файл для Maven:

    pom.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <project
        xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.example</groupId>
        <artifactId>app</artifactId>
        <packaging>jar</packaging>
        <version>0.1.0</version>
        <properties>
    	    <maven.compiler.source>1.8</maven.compiler.source>
    	    <maven.compiler.target>1.8</maven.compiler.target>
        </properties>
        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.21</version>
            </dependency>
    	</dependencies>
    	<build>
         	<finalName>${project.artifactId}-${project.version}</finalName>
         	<sourceDirectory>src</sourceDirectory>
    	 	<resources>
         		<resource>
    	 	     	<directory>src</directory>
         		</resource>
         	</resources>
        	<plugins>
        		<plugin>
    	     		<groupId>org.apache.maven.plugins</groupId>
    	     		<artifactId>maven-assembly-plugin</artifactId>
    	     		<executions>
    	     			<execution>
    	     				<goals>
    	 	    				<goal>attached</goal>
    	     				</goals>
    	 	    			<phase>package</phase>
    	 	    			<configuration>
    	 		    			<descriptorRefs>
    	 			    			<descriptorRef>jar-with-dependencies</descriptorRef>
    	 		    			</descriptorRefs>
    	 			    		<archive>
    	 			    			<manifest>
    	 			    				<mainClass>com.example.App</mainClass>
    	 			    			</manifest>
    	 	    				</archive>
    	 	    			</configuration>
    	 	    		</execution>
    	     		</executions>
        		</plugin>
    	 		<plugin>
         			<groupId>org.apache.maven.plugins</groupId>
    	     		<artifactId>maven-jar-plugin</artifactId>
         			<version>3.1.0</version>
        			<configuration>
    	     			<archive>
    	     				<manifest>
    	      					<mainClass>com.example.App</mainClass>
    	  	     			</manifest>
    	 	    		</archive>
        			</configuration>
        		</plugin>
    	 	</plugins>
    	</build>
    </project>
    

    Актуальную версию mysql-connector-java уточняйте на странице проекта в репозитории Maven.

Подключение с SSL
Подключение без SSL

src/java/com/example/App.java

package com.example;

import java.sql.*;

public class App {
  public static void main(String[] args) {
    String DB_URL     = "jdbc:mysql://<FQDN_любого_хоста_MySQL®>:3306/<имя_БД>?useSSL=true";
    String DB_USER    = "<имя_пользователя>";
    String DB_PASS    = "<пароль_пользователя>";

    System.setProperty("javax.net.ssl.trustStore", "/home/<домашняя_директория>/.mysql/YATrustStore");
    System.setProperty("javax.net.ssl.trustStorePassword", "<пароль_хранилища_сертификатов>");

    try {
      Class.forName("com.mysql.cj.jdbc.Driver");

      Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
      ResultSet q = conn.createStatement().executeQuery("SELECT version()");
      if(q.next()) {System.out.println(q.getString(1));}

      conn.close();
    }
    catch(Exception ex) {ex.printStackTrace();}
  }
}

В этом коде необходимо указывать полный путь к хранилищу сертификатов YATrustStore для драйвера MySQL® в свойстве javax.net.ssl.trustStore.

src/java/com/example/App.java

package com.example;

import java.sql.*;

public class App {
  public static void main(String[] args) {
    String DB_URL     = "jdbc:mysql://<FQDN_любого_хоста_MySQL®>:3306/<имя_БД>?useSSL=false";
    String DB_USER    = "<имя_пользователя>";
    String DB_PASS    = "<пароль_пользователя>";

    try {
      Class.forName("com.mysql.cj.jdbc.Driver");

      Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
      ResultSet q = conn.createStatement().executeQuery("SELECT version()");
      if(q.next()) {System.out.println(q.getString(1));}

      conn.close();
    }
    catch(Exception ex) {ex.printStackTrace();}
  }
}

О том, как получить FQDN хоста, см. инструкцию.

Подключение:

mvn clean package && \
java -jar target/app-0.1.0-jar-with-dependencies.jar

При успешном подключении к кластеру и выполнении тестового запроса будет выведена версия MySQL®.

Node.jsNode.js

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

sudo apt update && sudo apt install --yes nodejs npm && \
npm install mysql2
Подключение с SSL
Подключение без SSL

app.js

"use strict"
const fs = require('fs');
const mysql = require('mysql2');

const config = {
  host     : '<FQDN_любого_хоста_MySQL®>',
  port     : 3306,
  user     : '<имя_пользователя>',
  password : '<пароль_пользователя>',
  database : '<имя_БД>',
  ssl: {
    rejectUnauthorized: true,
    ca: fs.readFileSync('/home/<домашняя_директория>/.mysql/root.crt').toString(),
  },
}

const conn = mysql.createConnection(config)
conn.connect(err => {if (err) throw err})
  conn.query('SELECT version()', (err, result, fields) => {
    if (err) throw err
    console.log(result[0])
    conn.end()
  })

При этом способе подключения в коде необходимо указывать полный путь к сертификату root.crt для MySQL® в переменной ca.

app.js

"use strict"
const mysql = require('mysql2');

const config = {
  host     : '<FQDN_любого_хоста_MySQL®>',
  port     : 3306,
  user     : '<имя_пользователя>',
  password : '<пароль_пользователя>',
  database : '<имя_БД>',
}

const conn = mysql.createConnection(config)
conn.connect(err => {if (err) throw err})
  conn.query('SELECT version()', (err, result, fields) => {
    if (err) throw err
    console.log(result[0])
    conn.end()
  })

О том, как получить FQDN хоста, см. инструкцию.

Подключение:

node app.js

При успешном подключении к кластеру и выполнении тестового запроса будет выведена версия MySQL®.

ODBCODBC

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

sudo apt update && sudo apt install --yes unixodbc && \
wget https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc_8.0.21-1ubuntu20.04_amd64.deb && \
sudo dpkg -i mysql-connector-odbc_8.0.21-1ubuntu20.04_amd64.deb

Драйвер MySQL® Connector/ODBC будет автоматически зарегистрирован в файле /etc/odbcinst.ini. Актуальная версия драйвера: mysql-connector-odbc.

Настройки подключения необходимо задать в файле /etc/odbc.ini.

Подключение с SSL
Подключение без SSL

odbc.ini

[mysql]
Driver=MySQL ODBC 8.0 Unicode Driver
SERVER=<FQDN_любого_хоста_MySQL®>
UID=<имя_пользователя>
PWD=<пароль_пользователя>
DATABASE=<имя_БД>
PORT=3306
SSLCA=/home/<домашняя_директория>/.mysql/root.crt
SSLVERIFY=1

При этом способе подключения в файле /etc/odbc.ini необходимо указывать полный путь к сертификату root.crt для MySQL® в параметре SSLCA.

odbc.ini

[mysql]
Driver=MySQL ODBC 8.0 Unicode Driver
SERVER=<FQDN_любого_хоста_MySQL®>
UID=<имя_пользователя>
PWD=<пароль_пользователя>
DATABASE=<имя_БД>
PORT=3306

О том, как получить FQDN хоста, см. инструкцию.

Подключение:

isql -v mysql

После подключения к СУБД выполните команду SELECT version();.

При успешном подключении к кластеру и выполнении тестового запроса будет выведена версия MySQL®.

PHPPHP

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

sudo apt update && apt install --yes php php-mysql
Подключение с SSL
Подключение без SSL

connect.php

<?php
    $conn = mysqli_init();

    $conn->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
    $conn->ssl_set(NULL, NULL, '/home/<домашняя_директория>/.mysql/root.crt', NULL, NULL);
    $conn->real_connect('<FQDN_любого_хоста_MySQL®>', '<имя_пользователя>', '<пароль_пользователя>', '<имя_БД>', 3306, NULL, MYSQLI_CLIENT_SSL);

    $q = $conn->query('SELECT version()');
    $result = $q->fetch_row();
    echo($result[0]);

    $q->close();
    $conn->close();
?>

При этом способе подключения в коде необходимо указывать полный путь к сертификату root.crt для MySQL® в методе ssl_set.

connect.php

<?php
    $conn = mysqli_init();

    $conn->options(MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, false);
    $conn->real_connect('<FQDN_любого_хоста_MySQL®>', '<имя_пользователя>', '<пароль_пользователя>', '<имя_БД>', 3306, NULL, NULL);

    $q = $conn->query('SELECT version()');
    $result = $q->fetch_row();
    echo($result[0]);

    $q->close();
    $conn->close();
?>

О том, как получить FQDN хоста, см. инструкцию.

Подключение:

php connect.php

При успешном подключении к кластеру и выполнении тестового запроса будет выведена версия MySQL®.

PowerShellPowerShell

Перед подключением скачайте и установите утилиту MySQL Shell.

Подключение с SSL
Подключение без SSL
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®.

PythonPython

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

sudo apt update && sudo apt install --yes python3 python3-pip libmysqlclient-dev && \
pip3 install mysqlclient
Подключение с SSL
Подключение без SSL

connect.py

import MySQLdb

conn = MySQLdb.connect(
      host="<FQDN_любого_хоста_MySQL®>",
      port=3306,
      db="<имя_БД>",
      user="<имя_пользователя>",
      passwd="<пароль_пользователя>",
      ssl={'ca': '~/.mysql/root.crt'})

cur = conn.cursor()
cur.execute('SELECT version()')

print(cur.fetchone()[0])

conn.close()

connect.py

import MySQLdb

conn = MySQLdb.connect(
      host="<FQDN_любого_хоста_MySQL®>",
      port=3306,
      db="<имя_БД>",
      user="<имя_пользователя>",
      passwd="<пароль_пользователя>")

cur = conn.cursor()
cur.execute('SELECT version()')

print(cur.fetchone()[0])

conn.close()

О том, как получить FQDN хоста, см. инструкцию.

Подключение:

python3 connect.py

При успешном подключении к кластеру и выполнении тестового запроса будет выведена версия MySQL®.

RubyRuby

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

sudo apt update && sudo apt install --yes ruby ruby-mysql2
Подключение с SSL
Подключение без SSL

connect.rb

require "mysql2"

conn = Mysql2::Client.new(
        :host => "<FQDN_любого_хоста_MySQL®>",
        :port => 3306,
        :database => "<имя_БД>",
        :username => "<имя_пользователя>",
        :password => "<пароль_пользователя>",
        :ssl_mode => "verify_identity",
        :sslca => "~/.mysql/root.crt")

q = conn.query("SELECT version()")

q.each do |result|
  puts result["version()"]
end

conn.close()

connect.rb

require "mysql2"

conn = Mysql2::Client.new(
        :host => "<FQDN_любого_хоста_MySQL®>",
        :port => 3306,
        :database => "<имя_БД>",
        :username => "<имя_пользователя>",
        :password => "<пароль_пользователя>")

q = conn.query("SELECT version()")

q.each do |result|
  puts result["version()"]
end

conn.close()

О том, как получить FQDN хоста, см. инструкцию.

Подключение:

ruby connect.rb

При успешном подключении к кластеру и выполнении тестового запроса будет выведена версия MySQL®.

ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc.

Была ли статья полезна?

Предыдущая
Удаление кластера
Следующая
SQL-запросы в Yandex WebSQL
Проект Яндекса
© 2025 ООО «Яндекс.Облако»