【MySQL】🔰外部ホストからの接続方法

MySQLで外部ホストからデータベースへ接続するユーザの作成方法をメモします。

アプリケーション側のサーバ(Web)とDBサーバのホストを分けている場合にも必須の設定となります。

環境: MySQL Ver 8.0.19 for Linux, CentOS7

MySQLの設定を行う

MySQLへログインする

mysql -u root -p

外部ホスト用のDBユーザを作成

1. 外部ホストからDB接続するためのユーザを作成する

CREATE USER ユーザ名@'xxx.xx.xxx.x' IDENTIFIED BY '接続時のパスワード';

接続元となるホスト名(IPアドレス)とパスワードを指定して、外部から接続するDBユーザを作成します。

2. 作成したユーザにDBの接続許可を与える

GRANT ALL PRIVILEGES ON データベース名.テーブル名 TO 作成したユーザ@'接続元ホスト名'

3. MySQLを再起動して設定を反映する

# systemctl restart mysqld

 
ユーザアカウントの管理は以下記事参照

【MySQL】🔰ユーザアカウントの管理

注意:firewallを有効にしている場合

ファイヤーウォール(firewall)を有効にしている場合、外部から接続出来るようにするためにMySQLの※接続ポート番号を許可しておく必要があります。
※ デフォルトは3306

(MySQLをログアウトして)
接続許可ポートの確認

# firewall-cmd --list-ports

ポート(3306)の追加

# firewall-cmd --add-port=3306/tcp --zone=public

外部ホストから接続

外部ホストからMySQLホストのDBに接続できるか確認します。
※ MySQLコマンドを使用する為、接続元となるこちらの環境にもMySQLクライアントがインストールされている必要があります。

サーバへログインし、以下のコマンドで接続します。(パスワードを入力)

# mysql -u ユーザ名 -h xx.xx.xx.xx(MySQLホストのIP) -p -D データベース名

Follow me!