Amazon Aurora MySQL 互換エディションの DB クラスターに対して認証したいのですが、「アクセス拒否」エラーが発生します。
Aurora MySQL 互換 DB クラスターに接続するには、次のいずれかを実行します。
「アクセス拒否」エラーは通常、間違ったユーザー名またはパスワードを入力した場合に発生します。詳細については、MySQL のウェブサイトで「アクセス拒否」を参照してください。
DB インスタンスが AVAILABLE 状態であることを確認する詳細については、「Amazon RDS DB インスタンスのステータスを確認する」と「Aurora クラスター内の DB インスタンスのステータスを確認する」を参照してください。「Amazon RDS DB インスタンスに接続する際の問題を解決する方法を教えてください」も参照してください。
パスワードの誤り
データベースに接続するときに、正しいパスワードを入力していることを確認します。パスワードには特殊文字を使用しないでください。詳細については、「Amazon RDS DB インスタンスの管理者ユーザーのパスワードをリセットする方法を教えてください」を参照してください。
ユーザー名の誤り
データベースに接続するときに、正しいユーザー名を入力していることを確認します。
該当ユーザーが存在するかどうかを確認するには、次のクエリを実行します。
mysql> SELECT user FROM mysql.user WHERE User='username';
ユーザーが存在しない場合は、次のクエリを実行して新しいユーザーを作成します。
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'new-password-here'; mysql> FLUSH PRIVILEGES;
詳細については、「マスターユーザーアカウントの特権」を参照してください。
ユーザーは存在するが、クライアントホストに接続するためのアクセス許可がない
MySQL が許可する接続元ホストユーザーまたはホストを確認するには、次のクエリを実行します。
mysql> SELECT host, user FROM mysql.user WHERE User='username';
正しいホストクライアントの IP アドレスまたは、任意の IP アドレスと一致させるためにワイルドカード記号 (%) を使用してユーザーを作成するには、次のクエリを実行します。
mysql> CREATE USER 'dbuser'@'%' IDENTIFIED BY 'new-password-here';
SSL が必須だが、クライアントが SSL を使用していない
ユーザーが SSL を適用したかどうかを確認するには、DB インスタンスで次のクエリを実行します。
mysql> SELECT * FROM mysql.user WHERE ssl_type <> '';
SSL が適用されている場合は、SSL を使用して接続する必要があります。詳細については、「SSL/TLS を使用して DB クラスターへの接続を暗号化する」を参照してください。
重複ユーザー
同じユーザー名のユーザーが存在するかどうかを確認するには、次のクエリを実行します。
重複ユーザーを解決するには、他のユーザーに対する DROP アクセス許可を持つユーザーでログインします。セカンダリユーザーをドロップすると、最初のユーザーが接続できるようになります。
詳細については、「MySQL が実行されている Amazon RDS DB インスタンスの別の管理者ユーザーを作成する方法を教えてください」を参照してください。
パスワードの特殊文字が Bash によって変換されている
Bash によるパスワードの特殊文字変換を防ぐために、パスワードを一重引用符で囲みます。
接続パケットに正しい情報が含まれていない
接続パケットが接続パケットを取得するのに、connect_timeout 秒を超える時間がかかっている。詳細については、MySQL のウェブサイトで「connect_timeout」を参照してください。この DB パラメータの値は、クエリとワークロードに合わせて調整できます。
max_allowed_packet 変数の値が小さすぎるか、DB インスタンスに割り当てたメモリよりも多くのメモリがクエリに必要である
デフォルトでは、max_allowed_packet の値は 64 MBです。詳細については、MySQL のウェブサイトで「max_allowed_packet」を参照してください。
大きな BLOB 列や長い文字列を使用している場合は、max_allowed_packet の値を大きくします。詳細については、「Amazon RDS for MySQL でパラメータを設定するうえでのベストプラクティス パート3: セキュリティ、運用管理性、接続タイムアウトに関連するパラメータ」を参照してください。
接続するには、「ユーザーが IAM の認証情報を使用して Amazon RDS for MySQL の DB インスタンスを認証できるようにする方法を教えてください」を参照してください。
接続できない場合は、「IAM 認証を使用して Amazon RDS for MySQL に接続しようとすると、アクセス拒否エラーが表示される理由を知りたいです」を参照してください。
DB クラスターへの接続については、「Amazon RDS Proxy を使用して、Amazon RDS for MySQL DB インスタンスまたは Aurora MySQL 互換 DB クラスターに接続する方法を教えてください」を参照してください。
DB クラスターに接続できない場合は、「RDS Proxyを使用して Amazon RDS DB または Amazon Aurora DB インスタンスに接続できない理由を知りたいです」を参照してください。
Amazon Aurora MySQL DB クラスターへの接続
MariaDB、MySQL、PostgreSQL の IAM データベース認証
Amazon RDS のパラメータグループ
VPC のパブリックサブネットまたはプライベートサブネットを使用する Amazon RDS DB インスタンスへの接続のトラブルシューティング方法を教えてください