【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
ユーザアカウントの管理は以下記事参照
注意: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 データベース名