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

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

  • Настройка групп безопасности
  • Получение SSL-сертификата
  • FQDN хостов MySQL®
  • Получить 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 хоста
    • Текущий мастер
    • Наименее отстающая реплика
  • Подключение из графических 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 вида c-<идентификатор_кластера>.rw.mdb.yandexcloud.net всегда указывает на текущий хост-мастер в кластере. Идентификатор кластера можно получить со списком кластеров в каталоге.

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

Важно

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

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

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 ООО «Яндекс.Облако»