14
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DBeaverからローカルのMySQLに接続できない問題への対処法

Last updated at Posted at 2020-11-07

f3f5c080-808b-11ea-9713-2bea65875d95.png

ローカルにMySQLを構築し、DBeaver(DBクライアント)から接続を行う際に2つエラーが生じたので、エラーの原因と回避方法をメモ書き程度ですが記録します。

■ エラー内容

今回は以下2種類のエラーについて解説します。

  1. caching_sha2_passwordのエラーが出力される。
  2. Public Key Retrieval is not allowedのエラーが出力される。

■ caching_sha2_passwordのエラーが出力される。

エラーが発生する条件

  1. ローカルで起動しているMySQLがバージョン8系である。
  2. 起動プロファイルを「MySQL5」で作成してしまっている。

この場合、「caching_sha2_password」エラーが出力されます。

対処法

  1. DBeaverで接続プロファイル作成時に「MySQL5」ではなく「MySQL」を選択します。

1c1c2e2398ecb8df6472c4355c2cb62a.jpg

なお、接続時にドライバーのDLを推奨された際は、指示に従いドライバーをDLしてください。

MySQLはバージョン8系から、より安全な接続を提供するためにSHA-256を利用した暗号化と認証方式を提供しています。このエラーはより安全な接続方式を利用するためにクライアント側でもMySQLの推奨設定可能とするためのものです。

■ Public Key Retrieval is not allowedのエラーが出力される。

エラーが発生する条件

  1. caching_sha2_passwordを利用してMySQLに接続しようとしている。
  2. クライアントとDBサーバー間の通信経路がTLSで保護されていない。

対処方

  1. 接続先プロファイルのドライバー設定からallowPublicKeyRetrievalをtrueに設定します。

0454187a8ade5aa17af842b30931cbae.jpg

通常MySQLでは、caching_sha2_passwordを利用してDBに接続する場合は、通信経路の保護が推奨されておりデフォルトでは保護なしでの接続はできないようになっています。この設定をtrueにすることで保護されていない環境下でもcaching_sha2_passwordを利用した接続が可能になりエラーを回避できます。
なお無論ですが、通信経路が保護されていない環境ではMITMなどの攻撃に脆弱であり、開発者自身が安全性を保証する必要があります。

■ 参考資料

14
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?