Перейти к основному содержимому
Перейти к основному содержимому

Универсальное руководство по настройке источника MySQL

Ссылки

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

Включение хранения двоичных логов

Двоичные логи содержат информацию об изменениях данных в экземпляре сервера MySQL и необходимы для репликации.

MySQL 8.x и более поздние версии

Чтобы включить бинарное логирование на вашем сервере MySQL, убедитесь, что настроены следующие параметры:

log_bin = ON                        -- default value
binlog_format = ROW                 -- default value
binlog_row_image = FULL             -- default value
binlog_row_metadata = FULL
binlog_expire_logs_seconds = 86400  -- 1 day or higher; default is 30 days

Чтобы проверить эти настройки, выполните следующие SQL-команды:

SHOW VARIABLES LIKE 'log_bin';
SHOW VARIABLES LIKE 'binlog_format';
SHOW VARIABLES LIKE 'binlog_row_image';
SHOW VARIABLES LIKE 'binlog_row_metadata';
SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';

Если значения не совпадают, вы можете выполнить следующие SQL-команды, чтобы установить нужные значения:

SET PERSIST log_bin = ON;
SET PERSIST binlog_format = ROW;
SET PERSIST binlog_row_image = FULL;
SET PERSIST binlog_row_metadata = FULL;
SET PERSIST binlog_expire_logs_seconds = 86400;

Если вы изменили параметр log_bin, вам НЕОБХОДИМО ПЕРЕЗАПУСТИТЬ экземпляр MySQL, чтобы изменения вступили в силу.

После изменения настроек перейдите к настройке пользователя базы данных.

MySQL 5.7

Чтобы включить двоичное логирование в вашем экземпляре MySQL 5.7, убедитесь, что настроены следующие параметры:

server_id = 1            -- or greater; anything but 0
log_bin = ON
binlog_format = ROW      -- default value
binlog_row_image = FULL  -- default value
expire_logs_days = 1     -- or higher; 0 would mean logs are preserved forever

Чтобы проверить эти настройки, выполните следующие SQL-команды:

SHOW VARIABLES LIKE 'server_id';
SHOW VARIABLES LIKE 'log_bin';
SHOW VARIABLES LIKE 'binlog_format';
SHOW VARIABLES LIKE 'binlog_row_image';
SHOW VARIABLES LIKE 'expire_logs_days';

Если значения не совпадают, вы можете указать их в файле конфигурации (обычно он расположен в /etc/my.cnf или /etc/mysql/my.cnf):

[mysqld]
server_id = 1
log_bin = ON
binlog_format = ROW
binlog_row_image = FULL
expire_logs_days = 1

Вам НУЖНО ПЕРЕЗАПУСТИТЬ экземпляр MySQL, чтобы изменения вступили в силу.

Примечание

Исключение столбцов и изменение схемы не поддерживаются для MySQL 5.7 и более ранних версий. Эти возможности зависят от метаданных таблицы, которые недоступны в binlog до версии MySQL 8.0.1.

Настройка пользователя базы данных

Подключитесь к вашему экземпляру MySQL от имени пользователя root и выполните следующие команды:

  1. Создайте отдельного пользователя для ClickPipes:

    CREATE USER 'clickpipes_user'@'%' IDENTIFIED BY 'some_secure_password';
    
  2. Выдайте права на схему. В следующем примере показаны права доступа для базы данных clickpipes. Повторите эти команды для каждой базы данных и хоста, которые вы хотите реплицировать:

    GRANT SELECT ON `clickpipes`.* TO 'clickpipes_user'@'%';
    
  3. Выдайте пользователю права на репликацию:

    GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
    GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
    
Примечание

Обязательно замените clickpipes_user и some_secure_password на нужные вам имя пользователя и пароль.

Настройка SSL/TLS (рекомендуется)

SSL-сертификаты обеспечивают защищённые соединения с базой данных MySQL. Конкретная настройка зависит от типа сертификата:

Доверенный центр сертификации (DigiCert, Let's Encrypt и т.д.) — дополнительная настройка не требуется.

Внутренний центр сертификации — получите файл корневого сертификата CA у вашей IT-команды. В интерфейсе ClickPipes загрузите его при создании нового MySQL ClickPipe.

Самостоятельно развернутый MySQL (self-hosted) — скопируйте сертификат CA с сервера MySQL (обычно по пути /var/lib/mysql/ca.pem) и загрузите его в интерфейсе при создании нового MySQL ClickPipe. В качестве хоста используйте IP-адрес сервера.

Самостоятельно развернутый MySQL без доступа к серверу — запросите сертификат у вашей IT-команды. В крайнем случае используйте переключатель "Skip Certificate Verification" в интерфейсе ClickPipes (не рекомендуется по соображениям безопасности).

Для получения дополнительной информации по вариантам SSL/TLS см. наш FAQ.

Что дальше?

Теперь вы можете создать ClickPipe и начать приём данных из вашего экземпляра MySQL в ClickHouse Cloud. Обязательно запишите параметры подключения, которые вы использовали при настройке экземпляра MySQL, так как они понадобятся вам на этапе создания ClickPipe.