概要
今回mysqlサーバに外部から接続して動きを確認したかったので、vagrantを使用してcentosサーバの中にmysqlをインストールし、mysqlサーバを構築しようと考えた。(centosサーバを構築した状態からスタート。)
サーバ構築後、外部から接続できるユーザの発行を少し調べたのでメモに残そうと思います。
作業内容
まずはサーバにsshでログインし、mysqlをインストールする。
$ yum install mysql-server
$ vi /etc/my.cnf
必要最小限ですが、my.cnfを修正する。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 下記のcharacter-setを追加してやる。
character-set-server = utf8
...
修正が終わったらmysqlを起動する。
$ /etc/init.d/mysqld start
下記のような感じで外部から接続できるユーザを作る。
> grant all privileges on [db_name].* to [user_name]@"[ip_address]" identified by '[password]' with grant option;
今回はすべての権限を持っていて、どこからでもアクセスできるようにしたかったので、ワイルドカードを使用して以下のようなユーザを作成した。
(権限はもちろんすべてのDBにアクセスできる)
$ mysql -u root
> grant all privileges on *.* to test_user1@"%" identified by 'test1234' with grant option;
> select user,host from mysql.user;
# 上記で設定したアクセス権限でユーザが作られているか確認する。
# 今回は test_user1 が % (どこからでも)になっているか確認できる。
+------------+-----------------------+
| user | host |
+------------+-----------------------+
| test_user1 | % |
| root | 127.0.0.1 |
| | localhost |
| root | localhost |
| | localhost.localdomain |
| root | localhost.localdomain |
+------------+-----------------------+
あとは、mysqlを再起動してmysqlクライアントがインストールされている端末から下記のコマンドでアクセスしてみる。
$ mysql -h [ip or address] -u [user_name] -p