古いクライアントからMySQLへ接続できない場合、認証方式を変更する前にクライアントの互換性を確認します。旧記事で紹介したmysql_native_passwordへの変更は、現在のMySQLにそのまま適用できる対処ではありません。
2026年10月8日改訂。MySQL 8.0.16・Sequel Pro Nightlyを前提とした内容を更新しました。
古い認証方式への切り替えを勧めない理由
MySQLの公式資料によると、mysql_native_passwordは8.0.34で非推奨、8.4で標準では無効、9.0で削除されています。MySQL公式:ネイティブ認証
接続のためにサーバーを古い認証方式へ戻す方法は、今後の更新にも支障が出ます。サーバーの設定を変える前に、現在の認証方式に対応したクライアントを選んでください。
macOSでは、Sequel Aceの公式サイトから現行クライアントと対応OSを確認できます。既存の接続情報を移す場合も、接続先やSSH鍵の取り扱いを見直します。
エラーの種類を分ける
| 症状 | 最初に確認すること |
|---|---|
| 接続拒否・タイムアウト | サーバーの稼働、ホスト名、ポート、ネットワーク経路 |
| Access denied | ユーザー名、パスワード、接続元に対応するアカウント |
| 認証プラグインのエラー | クライアントとサーバーのバージョン・認証方式 |
| TLS・証明書のエラー | 証明書の信頼、ホスト名、暗号化の設定 |
| ソケットのエラー | TCP接続かUnixソケット接続か、その指定先 |
「つながらない」という結果だけで原因を決めず、エラーメッセージを省略せずに読みます。認証エラーとネットワークのタイムアウトは、確認する場所が異なります。
接続方式をそろえる
同じPC上のMySQLでも、localhostと127.0.0.1ではクライアントが選ぶ接続方式が異なる場合があります。Unixソケットを使う場合はソケットのパス、TCPを使う場合はホストとポートを明示します。Sequel Aceの接続ガイドで方式ごとの項目を確認できます。
リモートのMySQLへは、運用方針に合わせてSSHトンネルやTLSを使用します。接続不良の解消を目的に、データベースの待受ポートを無条件に外部へ公開したり、証明書検証を無効にしたりする必要はありません。
接続できる別のクライアントで確認する
MySQLへ正常に接続できるCLIなどがあれば、次のSQLでサーバーのバージョンとアカウントの状態を確認できます。いずれも参照用のコマンドです。
SELECT VERSION(), USER(), CURRENT_USER();
SHOW GRANTS;
VERSION()はサーバーのバージョン、USER()はクライアントが指定したユーザーと接続元、CURRENT_USER()は実際に認証に使われたアカウントです。SHOW GRANTSは現在のアカウントに付与された権限を表示します。MySQL公式:情報関数
MySQLはユーザー名だけでなく接続元も含めてアカウントを扱います。GUIとCLIで接続方式や経路が違うと、同じ名前でも同じ条件の比較にならない場合があります。認証方式や権限の修正が必要なら、対象アカウントと接続元を管理者が確認して対応します。
対応の順序
- エラー全文とクライアント・サーバーのバージョンを確認する。
- 現行クライアントで同じ接続先・同じ方式を試す。
- ネットワーク、認証、TLS、権限のどこで失敗しているか切り分ける。
- 必要な変更だけを管理者が行い、変更後の接続を確認する。
互換性の問題を、不要な権限追加や認証方式の変更で回避しないことが、継続して運用できる接続設定につながります。
