コマンドラインを使用してリモート MySQL データベースを接続する

Mehvish Ashiq 2022年5月31日
コマンドラインを使用してリモート MySQL データベースを接続する

分散環境で作業する場合は、リモート接続が必要です。このチュートリアルは、コマンドラインを使用してリモート MySQL データベースに接続する方法を説明するステップバイステップガイドです。

コマンドラインを使用してリモート MySQL データベースを接続する

先に進む前に、まずいくつかのことを行う必要があります。コマンドラインまたはターミナルウィンドウへのアクセスと、別の場所で実行されている MySQL サーバー(リモート MySQL サーバー)です。

また、リモートマシンとローカルマシンでの root または sudo 権限も必要になります。MySQL サーバーに直接アクセスできない場合は、ssh を使用してリモート接続することもできます。

ssh を使用して接続する場合は、この記事を使用できます。

このチュートリアルでは、コマンドラインを使用して MySQL データベースとのリモート接続を確立する方法について説明します。次の手順が含まれます。

  1. MySQLconfig ファイルを編集します
  2. リモート接続を許可するようにファイアウォールを構成します
  3. root ログインをリモートで許可します
  4. リモートの MySQL サーバーに接続します

以下は、すべてのステップの詳細です。

MySQLconfig ファイルを編集する

次のコマンドを使用して、テキストエディタで config ファイルを開きます。nano テキストエディタを使用していますが、使い慣れた任意のテキストエディタを使用できます。

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

config ファイルのパスを忘れたかわからないとすると、find コマンドを使用して config ファイルの場所を知ることができます。config ファイルを開いたら、[mysqld] セクションを検索します。

[mysqld] セクションで bind-address を見つけ、その値を 127.0.0.1 から 0.0.0.0 に変更するか、# 記号を使用してこの行にコメントします。

bind-address オプションを更新する理由は何ですか?デフォルト設定により、IP アドレスが 127.0.0.1 のローカルマシンを使用してこのサーバーに接続できます。

# 記号を使用してこのオプションにコメントするか、その値を 0.0.0.0 に置き換えることにより、すべてのマシンがこのサーバーにリモートで接続できるようにします。

リモートで接続するマシンを 1つだけにする場合は、0.0.0.0 の代わりにホストマシンの IP アドレスを書き込むことができます。変更が完了したら、それらを保存してファイルを終了します。

更新を適用するには、次のコマンドを使用して MySQL サーバーを再起動します。

sudo systemctl restart mysql

リモート接続を許可するようにファイアウォールを構成する

config ファイルで bind-address を構成しているときに、デフォルトの MySQL ポートが 3306 であることに気付いたかもしれません。ここでは、MySQL のデフォルトポートである 3306 へのリモートトラフィックを許可するように設定を調整します。

トラフィックを開く前に、ファイアウォールを構成する必要があります。完了したら、以下のコマンドを使用して、この特定のポートのトラフィックを開くことができます。

Ubuntu 20.04 を使用しているため、ufw(複雑でないファイアウォール)を使用します。

sudo ufw allow from your_remote_ip_address to any port 3306

Enterを押すとすぐに、ルールが正常に更新されたことがわかります。

ルートログインをリモートで許可する

デフォルト設定のため、ローカルマシンを使用して root に接続できます。リモートマシンがルートとして接続できるようにするには、いくつかの変更を加える必要があります。

これを行うには、次のコマンドを使用します。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
mysql> UPDATE mysql.user SET host='%' WHERE user='root';

次に、次のように systemctl を使用して MySQL サーバーを再起動します。

sudo systemctl restart mysql

リモート MySQL サーバーに接続する

リモート MySQL サーバーがリモート接続を受け入れる準備ができたら、次のコマンドを使用してリモート MySQL サーバーと接続できます。

mysql -u your_username -h your_mysql_server_ip -p

ここで、your_username をユーザー名に置き換え、your_mysql_server_ip を IP に置き換えます。MySQL サーバーのホスト名を使用することもできます。

-p は、上記のコマンドで使用したユーザー名のパスワードを入力するように求めます。

すべてを正しく行うと、最終的にリモート MySQL サーバーに接続されます。データベースへのリモートアクセスを許可するために、次のクエリを実行できます。

mysql> update db set Host='ip_address' where
    -> Db='yourDB_name';

mysql> update user set Host='ip_address' where
    -> user='username';

usernameHost、および Db を指定した値に置き換えます。その後、リモートの場所から指定されたデータベースにアクセスできるようになります。

著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

関連記事 - MySQL Database