【MySQL】外部接続の設定方法【Linux】
当ページのリンクには広告が含まれています。
MySQLはセキュリティのため、デフォルトでは外部接続が出来ません。
そのため、いくつかの手順を経て外部接続が出来るようにします。
- MySQLでの設定
- サーバーのファイアウォールの設定
【Linux】MySQLのインストールと初期設定方法
Linuxでのmysqlのインストール方法を備忘録として記載しています。実行環境はpaizaクラウドのubuntu環境です。 初期設定-パッケージ情報の更新 最初にサーバーにログイ…
- サーバー:Ubuntu
- MySQL-server 8.0
目次
MySQLの設定
mysqlid.cnfからbind-adressをコメントアウト
$ vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1
↓
# bind-address = 127.0.0.1
ローカルからの接続以外を許可するために、bind-adress
をコメントアウトします。
外部接続用のユーザーを作成
外部接続用のユーザーを作成します。%
で全てのホストからの接続を許可しています。
mysql> CREATE USER 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD';
ユーザーが作成できているから確認してみましょう。
mysql> SELECT user, host FROM mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| username | % |
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
ユーザーの作成が確認できました。
外部接続用のデータベースの作成
mysql> CREATE DATABASE sample;
データベースを作成したら確認してみましょう。
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sample |
| sys |
+--------------------+
権限設定
mysql> GRANT ALL ON sample.* TO 'username'@'%';
先ほど作成したデータベースへの編集権限を渡しました。
ユーザーの権限を確認してみましょう。
mysql> SHOW GRANTS FOR 'username'@'%';
+------------------------------------------------------+
| Grants for username@% |
+------------------------------------------------------+
| GRANT USAGE ON *.* TO `username`@`%` |
| GRANT ALL PRIVILEGES ON `sample`.* TO `username`@`%` |
+------------------------------------------------------+
サーバーの設定
ファイアーウォールの設定を確認します。
$ ufw status
Status: inactive
inactive
は設定が無効になっているので、有効にします。
$ ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
# ssh接続が切れるかもしれません。よろしいですか的な
ポートを開放します。MySQLで使用する3306を開放します。
$ ufw allow 3306
MySQLでの外部接続
最後に、外部接続。
mysql -u username -h server -p
コメント