Как безопасно подключиться к MySQL 8 при использовании caching_sha2_password?

Как безопасно подключиться к MySQL 8 при использовании caching_sha2_password?

Я переезжаю с наших веб-сайтов на новый хост. Наш кластер баз данных (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 в надежде найти ЧТО-НИБУДЬ полезное.

Связанный контент