Ubuntu を使用してリモート MySQL サーバーに接続するさまざまな方法
- Ubuntu を使用してリモート MySQL サーバーに接続するさまざまな方法
- データ操作のための Ubuntu 20.04 クライアント マシンから Ubuntu 20.04 サーバー マシンへの接続
- Ubuntu 20.04 クライアント マシンから Ubuntu 20.04 サーバー マシンに接続してサーバーを起動、停止、再起動する
今日は、Ubuntu を使用してリモートの MySQL サーバーに接続し、データを操作して MySQL サーバーを起動および停止する方法を学習します。
Ubuntu を使用してリモート MySQL サーバーに接続するさまざまな方法
- Ubuntu 20.04 クライアント マシンから Ubuntu 20.04 サーバー マシンへのデータ操作
- Ubuntu 20.04 クライアント マシンから Ubuntu 20.04 サーバー マシンへの MySQL サーバーの停止/開始
データ操作のための Ubuntu 20.04 クライアント マシンから Ubuntu 20.04 サーバー マシンへの接続
カスタム ユーザーと接続する
ここでは、リモートの MySQL サーバーに存在するカスタム ユーザーを接続する方法を学習します。 リモート MySQL サーバーで mehvish
という名前のユーザーを作成し、すべての権限を付与しました。
mysql> CREATE USER "mehvish"@"%" IDENTIFIED BY "PASSWORD";
#here % sign shows that this user can be connected remotely
リモートの MySQL サーバーに接続するには、マシンに mysql-client
をインストールする必要があります。 Microsoft Windows 10 では、MySQL サーバーのインストール時に mysql-client
が自動的にインストールされます。
この 記事 に従って、クライアント マシンに MySQL をインストールできます。
リモート接続を行うには、MySQL サーバーがホストされているホスト マシンの IP アドレス、ユーザー名、およびその特定のユーザー アカウントのパスワードが必要です。 その IP アドレスを取得するには、MySQL サーバーが存在する Ubuntu で ip a
または ifconfig
コマンドを使用します。
IP アドレス、ユーザー名、およびパスワードがわかったら、次のコマンドを使用してリモートの MySQL サーバーに接続できます。
# Syntax
# mysql -h hostIP -u username -p password
$ mysql -h 192.168.56.102 -u mehvish -p ******
初めてリモート接続しようとすると、おそらく次のエラーが表示されます。
ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.2.15:3306' (10060)
このエラーを取り除くには、MySQL サーバーの構成ファイルを変更する必要があります。 vim
テキスト エディター を使用して構成ファイルを編集しますが、任意の選択肢を使用できます。
$ sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
ファイルが開いたら、[mysqld]
セクションの下にある bind-address
を見つけて、次のスクリーンショットに示すようにコメントします。 bind-address
オプションについてコメントしているのはなぜですか?
MySQL サーバーは、デフォルトの動作によりリモート接続を許可しません。 localhost
が MySQL サーバーに接続できるようにするだけです。 そのため、bind-address
をコメントして、リモート クライアント マシンが MySQL サーバーとの接続を確立できるようにします。
あるいは、bind_address
にコメントする代わりに、次のようにすることもできます。
bind-address
の値を127.0.0.1
から0.0.0.0
に変更できます。bind-address
オプションがない場合は、skip-networking
とskip-bind-address
を記述できます。
次のオプションを使用して、vim
テキスト エディターを使用して構成ファイルを編集および保存できます。
- I を押してファイルを編集します。
- Esc を押して編集モードを終了します。
- Esc を押して
:w
と入力し、Enter を押してファイルを保存します。 - Esc を押し、
:q
と入力し、Enter を押してファイルを終了します。 - Esc を押して、
:wq
と入力し、Enter を押して、ファイルを 1 ステップで保存して終了します。 - Esc を押して
:q!
と入力し、Enter を押してすべての変更を破棄してファイルを終了します。
MySQL サーバーがホストされているマシンで、次のようにサービスを再起動する必要があります。
$ sudo systemctl restart mysql
次に、次のコマンドを再度使用して、リモート MySQL サーバーに存在する mehvish
ユーザー アカウントに正常に接続します。 ローカル マシンで次のクエリを使用していることを思い出してください。
$ mysql -h 192.168.56.102 -u mehvish -p ******
root
ユーザーで接続する
詳細に入る前に、root
ユーザーがリモート接続を受け入れるかどうかを確認しましょう。 MySQL サーバーがホストされている Ubuntu で次のコマンドを使用できます。
mysql> SELECT USER, HOST from mysql.user;
出力:
root
ユーザーは localhost
からしか接続できないことがわかりましたか? リモート接続するには、次のコマンドを使用してリモート アクセスを許可する必要があります。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
mysql> UPDATE mysql.user SET host='%' WHERE user='root';
さらに、次のコマンドを使用して MySQL サーバーを再起動します。
$ sudo systemctl restart mysql
ここで、root
ユーザーがリモート接続を受け入れるかどうかを確認します。 サーバー マシン上の root
ユーザーのホストは %
です。これは、root アカウントにリモート接続できることを示しています。
これで、次のクエリを使用してデータの読み取り/書き込みを行うことで、ローカル マシンから root
ユーザーに接続できます。
$ mysql -h 192.168.56.102 -u root -p ******
MySQL サーバーを起動、停止、再起動したい場合はどうすればよいでしょうか? そのためには、MySQL サーバーのシェル上にいる必要があります。つまり、マシン上でサーバーのシェルを開く方法で接続する必要があります。
どうすればそれができますか? 次の章を見てみましょう。
Ubuntu 20.04 クライアント マシンから Ubuntu 20.04 サーバー マシンに接続してサーバーを起動、停止、再起動する
セキュア シェル (セキュア ソケット シェルとも呼ばれます) を使用してリモート サーバーに接続するには、指定された手順に従う必要があります。
-
ssh
をインストールして、Ubuntu マシンでホストされている MySQL サーバーへのシェル アクセスを取得します。 -
次に、
ssh
を構成します。 次に、ホスト マシン (ローカル マシン) でターミナルを開き、リモート サーバーに接続するための正しい資格情報を書き込みます。状況に応じて、次のいずれかを使用できます。
2.1.
ssh remote_host
コマンドを使用します。 これは最も簡単で、リモート マシンとローカル マシンで同じユーザー名を使用している場合に使用されます。
2.2. ユーザー名がローカル マシンとリモート マシンで異なる場合は、ssh remote_username@remote_host
を使用します。 これにより、サーバー マシンのシェルにアクセスできるようになります。 -
次のコマンドを使用して、要件に従って機能できます。
MySQL サーバーを起動します。
$ sudo systemctl start mysql
MySQL サーバーを停止します。
$ sudo systemctl stop mysql
MySQL サーバーを再起動します。
$ sudo systemctl restart mysql
MySQL サーバーのステータスを確認します。
$ sudo systemctl status mysql
MySQL サーバーの名前は mysqld
であることに注意してください。その場合、次のようにコマンドを使用する必要がある場合があります。
$ sudo /etc/init.d/mysql restart