使用 caching_sha2_password 時如何安全地連線到 MySQL 8?

使用 caching_sha2_password 時如何安全地連線到 MySQL 8?

我將從我們的網站轉移到新的主機。我們的資料庫叢集 (PCS) 現在執行 MySQL 8。

我們也從叢集到另一台伺服器運行複製(使用二進位日誌)。我以與使用 MySQL 5.x 時相同的方式設定複製,包括使用具有自簽名 CA 和憑證的 SSL。

製作憑證後,我在主伺服器上使用此配置:

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

我不確定這是否是最好的解決方案。

什麼以這種方式使用 SSL 時,使我的連接在 MySQL 8 中正常工作的最佳方法是什麼?組成叢集的資料庫伺服器、同一內部網路上的 Web 伺服器以及外部(例如複製和遠端資料庫管理)都會有許多帳戶。

答案1

我想知道你是否能解決這個問題。我遇到了相同或類似的問題。這是我的 Reddit 主題: https://www.reddit.com/r/mysql/comments/10pa60k/group_replication_and_ssl_configuring_issues/

任何建議都會很棒。謝謝。 DD

答案2

在與這個問題鬥爭了很久之後,我終於找到了適合我的設定。青年MMV

我所要做的就是將以下行和組複製設定的其餘部分添加到我的 mysql 設定檔中

group_replication_recovery_get_public_key           = on

據我所知,這在任何地方都沒有記錄。我只是在查看 mysql 變數時偶然發現了它,希望能找到任何有用的東西。

相關內容