Я переезжаю с наших веб-сайтов на новый хост. Наш кластер баз данных (PCS) теперь работает на MySQL 8. У нас есть два сервера баз данных (активный и отказоустойчивый) с плавающим виртуальным IP, к которому мы подключаемся к MySQL.
У нас также запущена репликация с кластера на другой сервер (используя двоичные журналы). Я настроил репликацию так же, как и при использовании MySQL 5.x, включая использование SSL с самоподписанным CA и сертификатами.
После создания сертификатов я использую следующую конфигурацию на главном сервере:
ssl
ssl-ca=/var/lib/mysql/ssl/ca.pem
ssl-cert=/var/lib/mysql/ssl/server-cert.pem
ssl-key=/var/lib/mysql/ssl/server-key.pem
Репликация теперь работает нормально на подчиненном сервере. Однако, когда я пытаюсь подключиться к кластеру mysql в командной строке (с активного сервера БД), я получаю следующую ошибку:
ERROR 2061 (HY000): Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.
Читая об этом, я подумал, что это из-за того, что caching_sha2_password
теперь это по умолчанию, и в документации говорится, что необходимо безопасное соединение. Я попробовал следующее:
mysql --ssl-mode=DISABLED
и это не имело никакого значения. Я также пробовал сменить пользователя:
mysql> ALTER USER 'root'@'db-01' IDENTIFIED WITH mysql_native_password BY 'passwordhere'
и это тоже не сработало. Пока что единственный способ, которым я смог войти в MySQL, — это удалить SSL . Я обнаружил, что яможетзаставить это подключиться вот так:
mysql --get-server-public-key
Хотя я не уверен, что это лучшее решение.
ЧтоявляетсяЛучший способ заставить мои соединения работать правильно в MySQL 8 при использовании SSL таким образом? Будет несколько учетных записей с обоих серверов БД, которые составляют кластер, на веб-серверах в той же внутренней сети и извне (например, репликация и удаленное управление БД).
решение1
Мне было интересно, смогли ли вы решить эту проблему. Я столкнулся с такой же или похожей проблемой. Вот моя ветка Reddit: https://www.reddit.com/r/mysql/comments/10pa60k/group_replication_and_ssl_configuring_issues/
Любое предложение было бы здорово. Спасибо. DD
решение2
После целой вечности мучений я наконец нашел настройку, которая исправила это для меня. YMMV
Все, что мне нужно было сделать, это добавить следующую строку в мой файл конфигурации MySQL с остальными настройками репликации моей группы
group_replication_recovery_get_public_key = on
Насколько я могу судить, это нигде не документировано. Я просто наткнулся на это, когда просматривал переменные mysql в надежде найти ЧТО-НИБУДЬ полезное.