70
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

mysql server で外部から接続できるユーザを作成する。

概要

今回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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
70
Help us understand the problem. What are the problem?