Рейтинг:0

Репликация MySQL 8 через соединение без SSL

флаг us

Я пытаюсь настроить крошечную среду master-slave с помощью percona-server-server.x86_64-8.0.27-18.1.el8.

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

ошибка при подключении к мастеру '[email protected]:3306' - время повторной попытки: 60 повторных попыток: 3 сообщение: ошибка соединения SSL: требуется SSL, но сервер его не поддерживает

Последний mysql.cnf на обоих узлах:

[mysqld]

порт = 3306
адрес привязки = 0.0.0.0
каталог данных = /var/lib/mysql
сокет = /var/run/mysql/mysql.sock
pid-файл = /var/run/mysql/mysql.pid
tmpdir = /var/tmp/mysql
# Пользователь игнорируется при использовании systemd (fedora >= 15).
пользователь = mysql
# добавляем это, чтобы разрешить репликацию без ssl
default_authentication_plugin = mysql_native_password
# отключить SSL
SSL = 0

##
# Настройка логирования.
##
лог-ошибка = /var/log/mysql/mysqld.err

##
# Репликация
##
идентификатор сервера = 1
отчет_хост = hv3-db1
gtid_mode = вкл.
принудительно-gtid-согласованность = на
sync_binlog = 1
log_bin = /var/lib/mysql/mysql-bin
log_bin_index = /var/lib/mysql/mysql-bin.index
binlog_expire_logs_seconds = 864000
max_binlog_size = 100M
log_replica_updates = 1

##
# Настройки памяти.
##
key_buffer_size = 256M
max_allowed_packet = 128M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
max_connections = 151
tmp_table_size = 64M
max_heap_table_size = 64M
join_buffer_size = 3M

##
# Другие настройки.
##
время_ожидания = 1800
# Отключение символических ссылок рекомендуется для предотвращения различных угроз безопасности.
пропустить символические ссылки = 1
net_read_timeout = 120
пропустить имя-решить
бэк_лог = 100
max_connect_errors = 10000
лимит открытых файлов = 20000
интерактивный_таймаут = 3600
время_подключения = 120
absolute_defaults_for_timestamp = Истина

##
# Настройки InnoDB
##
innodb_buffer_pool_size = 50G
innodb_log_buffer_size = 1M
innodb_flush_method = O_DIRECT
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 600
innodb_adaptive_hash_index = выкл.
innodb_fill_factor = 50
innodb_log_file_size = 2G
# Переместить логи в отдельный каталог/раздел
innodb_undo_directory = /var/tmp/mysql
innodb_log_group_home_dir = /var/tmp/mysql

Реплика запускается следующей командой:

ИЗМЕНИТЬ ИСТОЧНИК РЕПЛИКАЦИИ НА SOURCE_HOST = '192.168.3.100', SOURCE_PORT = 3306, SOURCE_USER = 'replica', SOURCE_PASSWORD = 'xxx', SOURCE_AUTO_POSITION = 1, SOURCE_SSL = 0;

У вас есть идея, как решить проблему?

drookie avatar
флаг za
Я бы сказал - из того, что я вижу - реплика на самом деле не была запущена с отключенным требованием ssl.
varas avatar
флаг us
Я это тоже понимаю, но вопрос остается - как это сделать?
varas avatar
флаг us
Я также добавил в конфигурацию ```require_secure_transport=OFF```, но это не помогает.
Рейтинг:0
флаг us
mysql_ssl_rsa_setup --uid=mysql

Проблема решена, кажется, сертификаты ssl должны существовать для mysql 8, даже если вы не используете их в репликации.

Ответить или комментировать

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