この記事では、MySQLデータベースにリモート接続するためにMySQL®サーバーでユーザーを設定する方法について説明します。
注 :この記事では、サーバーのローカルにあるMySQLインスタンスに接続する方法を説明しています。クラウドデータベースに対応する手順については、「クラウドデータベースインスタンスに接続する」を参照してください。
これらの手順を実行するには、rootとしてログインするためのローカルサーバーアクセス権が必要です。 MySQLユーザー。
接続元のコンピューターのインターネットプロトコル(IP)アドレスを知っている必要があります。この情報は、次のいずれかのサイトにアクセスして取得できます。
- https://icanhazip.com
- https://www.whatismyip.com
リモートホストからユーザーにアクセスを許可するには、次の手順を実行します。
-
rootとしてローカルでMySQLサーバーにログインします 次のコマンドを使用したユーザー:# mysql -u root -pMySQLルートパスワードの入力を求められます。
注 :パスワードを入力せずにMySQLにアクセスできる場合は、
mysql_secure_installationの実行を検討してください。 スクリプト。MySQLルートパスワードを設定し、セキュリティを強化するために他の設定を更新します。 Microsoft SQL Server ManagedServicesは、SQLServerインスタンスの管理に役立ちます。 -
GRANTを使用する 次の形式のコマンドを使用して、リモートユーザーのアクセスを有効にします。必ず1.2.3.4を変更してください 以前に取得したIPアドレス、およびmy_passwordfooUserが必要なパスワードに 使用するもの:mysql> GRANT ALL ON fooDatabase.* TO fooUser@'1.2.3.4' IDENTIFIED BY 'my_password';このステートメントは、
ALLを付与します ユーザーが指定されたパスワードを使用して指定されたIPアドレスから接続する場合の、新しいユーザーへのアクセス許可。
接続をリモートでテストするには、anotherLinux®サーバーからMySQLサーバーにアクセスします。次の例では、44.55.66.77を使用しています MySQLサーバーのIPアドレスとして:
# mysql -u fooUser -p -h 44.55.66.77
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.0.45 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> _
リモートユーザーを設定するときは、次の情報を考慮してください。
-
ローカルユーザーはリモートユーザーとは異なります。例:
fooUser@localhostfooUser@1.2.3.4と同じではありません 。両方のユーザーに同じ権限を付与する場合は、権限を複製する必要があります。 -
ALLを付与することはお勧めしません 権限。標準ユーザーの場合、GRANT SELECT,INSERT,UPDATE,DELETEを付与することをお勧めします 権限。 -
特定のテーブルのみへのアクセスを許可するには、
database.tableを使用できます 指図。たとえば、前の手順では、fooDatabase.fooTableを使用できます。fooDatabaseの代わりに 。 -
iptablesを使用している場合は、伝送制御プロトコル(TCP)ポート3306のファイアウォールルールにエントリを追加する必要があります。名前は
mysqlを使用できます。 ポート番号。