問題
Data Management (DMS) を使用して MySQL データベースにログインすると、以下のエラーが返されます。
null, message from server: Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server原因
mysql.user テーブルにより、データベースユーザーがローカル接続のみを許可されるように制限されています。DMS はリモート IP アドレスからご利用の MySQL インスタンスに接続するため、MySQL が接続を拒否します。
ソリューション
DMS の CIDR ブロックからのリモート接続を許可するデータベースユーザーを作成します。
データベース構成を変更する前に、インスタンスのディザスタリカバリおよびフォールトトレランス機能を確認し、データのセキュリティを確保してください。
変更を実施する前に、ApsaraDB RDS インスタンスに対してスナップショットを作成するか、ログバックアップを有効化してください。
Alibaba Cloud 管理コンソールでログインアカウントやパスワードなどの機密情報を入力した場合は、速やかに情報を変更してください。
ステップ 1:MySQL データベースへのログイン
コマンドラインツールまたは MySQL クライアントを使用して、MySQL データベースに接続します。
ステップ 2:DMS へのリモートアクセス権限の付与
以下の SQL 文を実行して、DMS の CIDR ブロックからの接続を許可するユーザーを作成します。文の内容は、ご利用のインスタンスのネットワークタイプによって異なります。
リージョン別の DMS の IP アドレス範囲の完全なリストについては、「DMS の IP アドレス範囲を追加する」をご参照ください。
クラシックネットワーク
grant all privileges on *.* to 'dms'@'120.55.177.0/24' identified by '<your-password>';
grant all privileges on *.* to 'dms'@'121.43.18.0/24' identified by '<your-password>';
grant all privileges on *.* to 'dms'@'10.153.176.106/24' identified by '<your-password>';
grant all privileges on *.* to 'dms'@'10.137.42.136/24' identified by '<your-password>';<your-password>は、データベースユーザーに設定するパスワードに置き換えてください。これらの CIDR ブロックは、Alibaba Cloud クラシックネットワークのプライベート CIDR ブロックです。
GRANT ... IDENTIFIED BY構文は MySQL 5.7 以前で使用可能です。MySQL 8.0 の場合、CREATE USER文とGRANT文を別々に実行してください。
VPC
grant all privileges on *.* to 'dms'@'100.104.175.0/24' identified by '<your-password>';
grant all privileges on *.* to 'dms'@'100.104.72.0/24' identified by '<your-password>';
grant all privileges on *.* to 'dms'@'100.104.5.0/24' identified by '<your-password>';
grant all privileges on *.* to 'dms'@'100.104.205.0/24' identified by '<your-password>';<your-password>は、データベースユーザーに設定するパスワードに置き換えてください。これらの CIDR ブロックは、Alibaba Cloud 仮想プライベートクラウド(VPC)のプライベート CIDR ブロックです。
GRANT ... IDENTIFIED BY構文は MySQL 5.7 以前で使用可能です。MySQL 8.0 の場合、CREATE USER文とGRANT文を別々に実行してください。
対応プロダクト
Data Management (DMS)
ApsaraDB RDS for MySQL