この記事では、MySQLデータベースにリモート接続するためにMySQL®サーバーでユーザーを設定する方法について説明します。
注 :この記事では、サーバーのローカルにあるMySQLインスタンスに接続する方法を説明しています。クラウドデータベースに対応する手順については、「クラウドデータベースインスタンスに接続する」を参照してください。
これらの手順を実行するには、root
としてログインするためのローカルサーバーアクセス権が必要です。 MySQLユーザー。
接続元のコンピューターのインターネットプロトコル(IP)アドレスを知っている必要があります。この情報は、次のいずれかのサイトにアクセスして取得できます。
- https://icanhazip.com
- https://www.whatismyip.com
リモートホストからユーザーにアクセスを許可するには、次の手順を実行します。
-
root
としてローカルでMySQLサーバーにログインします 次のコマンドを使用したユーザー:# mysql -u root -p
MySQLルートパスワードの入力を求められます。
注 :パスワードを入力せずにMySQLにアクセスできる場合は、
mysql_secure_installation
の実行を検討してください。 スクリプト。MySQLルートパスワードを設定し、セキュリティを強化するために他の設定を更新します。 Microsoft SQL Server ManagedServicesは、SQLServerインスタンスの管理に役立ちます。 -
GRANT
を使用する 次の形式のコマンドを使用して、リモートユーザーのアクセスを有効にします。必ず1.2.3.4
を変更してください 以前に取得したIPアドレス、およびmy_password
fooUser
が必要なパスワードに 使用するもの: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@localhost
[email protected]
と同じではありません 。両方のユーザーに同じ権限を付与する場合は、権限を複製する必要があります。 -
ALL
を付与することはお勧めしません 権限。標準ユーザーの場合、GRANT SELECT,INSERT,UPDATE,DELETE
を付与することをお勧めします 権限。 -
特定のテーブルのみへのアクセスを許可するには、
database.table
を使用できます 指図。たとえば、前の手順では、fooDatabase.fooTable
を使用できます。fooDatabase
の代わりに 。 -
iptablesを使用している場合は、伝送制御プロトコル(TCP)ポート3306のファイアウォールルールにエントリを追加する必要があります。名前は
mysql
を使用できます。 ポート番号。