Подключение к базе данных в кластере MySQL®
К хостам кластера Managed Service for MySQL® можно подключиться:
-
Через интернет, если вы настроили публичный доступ для нужного хоста. К таким хостам подключиться можно только используя SSL-соединение.
-
С виртуальных машин Yandex Cloud, расположенных в той же облачной сети. Если к хосту нет публичного доступа, для подключения с таких виртуальных машин необязательно использовать SSL-соединение.
Важно
Если публичный доступ в кластере настроен только для некоторых хостов, автоматическая смена мастера может привести к невозможности подключиться к мастеру из интернета.
Максимальное количество подключений определяется настройкой Max connections, которая зависит от класса хостов.
Подробнее см. в разделе Сеть и кластеры в Managed Service for MySQL®.
Настройка групп безопасности
Для подключения к кластеру необходимо, чтобы группы безопасности содержали правила, которые разрешают трафик с определенных портов, IP-адресов или из других групп безопасности.
Настройки правил будут различаться в зависимости от выбранного способа подключения:
Настройте все группы безопасности кластера так, чтобы они разрешали входящий трафик с любых IP-адресов на порт 3306. Для этого создайте следующее правило для входящего трафика:
- Диапазон портов —
3306
. - Протокол —
TCP
. - Источник —
CIDR
. - CIDR блоки —
0.0.0.0/0
.
-
Настройте все группы безопасности кластера так, чтобы они разрешали входящий трафик из группы безопасности, в которой находится ВМ, на порт 3306. Для этого в этих группах создайте следующее правило для входящего трафика:
- Диапазон портов —
3306
. - Протокол —
TCP
. - Источник —
Группа безопасности
. - Группа безопасности — если кластер и ВМ находятся в одной и той же группе безопасности, выберите значение
Текущая
(Self
). В противном случае укажите группу безопасности ВМ.
- Диапазон портов —
-
Настройте группу безопасности, в которой находится ВМ так, чтобы можно было подключаться к ВМ и был разрешен трафик между ВМ и хостами кластера.
Пример правил для ВМ:
-
Для входящего трафика:
- Диапазон портов —
22
. - Протокол —
TCP
. - Источник —
CIDR
. - CIDR блоки —
0.0.0.0/0
.
Это правило позволяет подключаться к ВМ по протоколу SSH.
- Диапазон портов —
-
Для исходящего трафика:
- Диапазон портов —
0-65535
. - Протокол —
Любой
(Any
). - Назначение —
CIDR
. - CIDR блоки —
0.0.0.0/0
.
Это правило разрешает любой исходящий трафик, что позволяет не только подключаться к кластеру, но и устанавливать на ВМ необходимые для этого сертификаты и утилиты.
- Диапазон портов —
-
Примечание
Вы можете задать более детальные правила для групп безопасности, например, разрешающие трафик только в определенных подсетях.
Группы безопасности должны быть корректно настроены для всех подсетей, в которых будут размещены хосты кластера. При неполных или некорректных настройках групп безопасности можно потерять доступ к кластеру.
Подробнее о группах безопасности см. в разделе Группы безопасности.
Получение SSL-сертификата
MySQL®-хосты с публичным доступом поддерживают только шифрованные соединения. Чтобы использовать их, получите SSL-сертификат:
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 — доменное имя. Его можно получить несколькими способами:
-
Скопируйте команду для подключения к кластеру в консоли управления
. Команда содержит заполненный FQDN хоста. Чтобы получить команду, перейдите на страницу кластера и нажмите кнопку Подключиться. -
Посмотрите FQDN в консоли управления:
- Перейдите на страницу кластера.
- Перейдите в раздел Хосты.
- Скопируйте значение в столбце FQDN хоста.
Для хостов кластера также используются особые FQDN.
Особые FQDN
Наравне с обычными FQDN, Managed Service for MySQL® предоставляет несколько особых FQDN, которые также можно использовать при подключении к кластеру.
Важно
Если при автоматической смене мастера новым мастером или наименее отстающей репликой станет хост без публичного доступа, подключиться к ним из интернета будет невозможно. Чтобы этого избежать, включите публичный доступ для всех хостов кластера.
Текущий мастер
FQDN вида c-<идентификатор_кластера>.rw.mdb.yandexcloud.net
всегда указывает на текущий хост-мастер в кластере. Идентификатор кластера можно получить со списком кластеров в каталоге.
При подключении к этому FQDN разрешено выполнять операции чтения и записи.
Пример подключения к хосту-мастеру для кластера с идентификатором c9qash3nb1v9********
:
mysql --host=c-c9qash3nb1v9********.rw.mdb.yandexcloud.net \
--port=3306 \
--ssl-ca=~/.mysql/root.crt \
--ssl-mode=VERIFY_IDENTITY \
--user=<имя_пользователя> \
--password \
<имя_БД>
Наименее отстающая реплика
FQDN вида c-<идентификатор_кластера>.ro.mdb.yandexcloud.net
указывает на наименее отстающую от мастера реплику. Идентификатор кластера можно запросить со списком кластеров в каталоге.
Особенности:
- При подключении к этому FQDN разрешено выполнять только операции чтения.
- Если в кластере нет активных реплик, то подключиться к этому FQDN невозможно: соответствующая CNAME-запись в DNS будет указывать на пустой объект (
null
).
Пример подключения к наименее отстающей реплике для кластера с идентификатором c9qash3nb1v9********
:
mysql --host=c-c9qash3nb1v9********.ro.mdb.yandexcloud.net \
--port=3306 \
--ssl-ca=~/.mysql/root.crt \
--ssl-mode=VERIFY_IDENTITY \
--user=<имя_пользователя> \
--password \
<имя_БД>
Подключение из графических 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.
- Выключите настройку Проверять сертификат сервера.
- Нажмите кнопку Тест соединения ... для проверки подключения. При успешном подключении будет выведен статус подключения, информация о СУБД и драйвере.
- Нажмите кнопку Готово, чтобы сохранить настройки соединения с БД.
Подключение из Yandex WebSQL
Вы можете отправлять SQL-запросы к базам данных в кластере Managed Service for MySQL® с помощью сервиса Yandex WebSQL.
WebSQL — это сервис Yandex Cloud, который позволяет подключаться к кластерам управляемых баз данных, работать с БД, таблицами и схемами и выполнять запросы. Сервис работает в браузере, не требует дополнительной авторизации и предлагает удобные подсказки для работы с SQL-командами.
Чтобы подключаться из WebSQL к кластеру Managed Service for MySQL®, необходимо создать подключение:
- Перейдите на страницу каталога и выберите сервис Managed Service for MySQL.
- Нажмите на имя нужного кластера.
- Включите опцию Доступ из WebSQL в настройках кластера, если она еще не включена.
- Выберите вкладку WebSQL.
- Нажмите кнопку Создать подключение и укажите параметры подключения:
- Имя подключения.
- Тип базы данных — MySQL®.
- Кластер — будет автоматически выбран текущий кластер MySQL®.
- Имя пользователя, от лица которого вы будете подключаться к базе данных в кластере.
- Пароль пользователя.
- Базы данных, к которым вы хотите подключиться. Вы можете подключиться только к существующим в этом кластере БД. У пользователя, которого вы указали, должен быть настроен доступ к ним.
- Нажмите кнопку Создать.
Чтобы открыть SQL-редактор, нажмите на созданное подключение на вкладке WebSQL.
Подробнее о работе с WebSQL см. в документации сервиса.
Подготовка к подключению из 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.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-сертификата.
Bash
Перед подключением установите утилиту mysql
:
sudo apt update && sudo apt install --yes mysql-client
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®.
Go
Перед подключением установите зависимости:
sudo apt update && sudo apt install --yes golang git && \
go get github.com/go-sql-driver/mysql
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®.
Java
Перед подключением:
-
Установите зависимости:
sudo apt update && sudo apt install --yes default-jdk maven
-
Добавьте SSL-сертификат в хранилище доверенных сертификатов Java (Java Key Store), чтобы драйвер MySQL® мог использовать этот сертификат при защищенном подключении к хостам кластера. При этом задайте пароль в параметре
-storepass
для защиты хранилища:cd ~/.mysql && \ sudo keytool -importcert \ -alias YandexCA \ -file root.crt \ -keystore YATrustStore \ -storepass <пароль_хранилища_сертификатов> \ --noprompt
Где
storepass
— пароль хранилища сертификатов, не короче 6 символов. -
Создайте директорию для проекта Maven:
cd ~/ && mkdir -p project/src/java/com/example && cd project/
-
Создайте конфигурационный файл для 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 .
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.js
Перед подключением установите зависимости:
sudo apt update && sudo apt install --yes nodejs npm && \
npm install mysql2
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®.
ODBC
Перед подключением установите зависимости:
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
.
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®.
PHP
Перед подключением установите зависимости:
sudo apt update && apt install --yes php php-mysql
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®.
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®.
Python
Перед подключением установите зависимости:
sudo apt update && sudo apt install --yes python3 python3-pip libmysqlclient-dev && \
pip3 install mysqlclient
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®.
Ruby
Перед подключением установите зависимости:
sudo apt update && sudo apt install --yes ruby ruby-mysql2
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