2,3分で、MySQLをインストールしてから、外部の端末から接続できるようにする

二、三分でMySQLを使えるようにする。

エッセンスだけ書く。
ちなみにUbuntuユーザーターゲットに書いている(検証環境はLubuntu)

MySQLのインストール

端末からインストールを開始

sudo apt-get install mysql-server

インストールの途中でこんな画面が出てくるので、パスワードを設定する。

初期設定

文字コードの設定

MySQLは初期設定だとLatin1という文字コードで、そのままだと文字化けする可能性があるので
文字コードをUTF-8に変える。

/etc/my.cnfファイルを設定しよう。
だが、僕の環境には無いので探してみたら、
/etc/mysql/my.cnfにあった。

設定ファイルを編集する。

vi /etc/mysql/my.cnf

clientとmysqldの下辺りに、utf8についてのプロパティをコピペする。

[client]
default-character-set = utf8

[mysqld]
character-set-server = utf8

MySQLを起動する。

sudo service mysql start

起動後はログインをする。

mysql -u root -pPASSWORD

PASSWORDはインストール時に決めたパスワードを入れる。
-pとの間にスペースを入れないで入力しないとログインでいない。

MySQLにログインできたら、以下のSQLで確認

show variables like 'char%';

このようにcharacter_set _filessystemとcharacter_sets_dir以外がutf8になっていたら成功!

ネットワーク越しに接続できるようにする

初期設定だと、ネットワーク越しにMySQLに接続できない。

同じサーバー内にアプリケーションがアレばいいけれど、
クライアントとMySQLが別のマシンだとこの設定をしなければならない。

先ほどの文字コードを設定したmy.cnfファイルのbind-addressに接続したいIPを設定する。

vi /etc/mysql/my.cnf

接続したいIPを設定する。
127.0.0.1はローカルIP

bind-address = 127.0.0.1
bind-address = 192.168.0.3

もしくは、どこからでもアクセスさせるようにしたければ
bind-addressをコメントアウトする。

#bind-address = 127.0.0.1

設定したらMySQLの再起動をする。

sudo service mysql restart

ユーザーの作成

ネットワーク越しに接続できるユーザーを作成してみる。
hogeuserというユーザーを追加して、
パスワードはpasso
すべてのデータベースにアクセスする権限を持っていて、どこのホストからでも接続できる。
実行に関してはすべての権限を持っている。
というユーザーにしよう。

GRANT ALL PRIVILEGES ON *.* TO hogeuser@"%" IDENTIFIED BY 'passo' WITH GRANT OPTION;

上のSQLを実行できたら、下のSQLでユーザー一覧を見てみよう

select Host, User from mysql.user;

hogeuserの列にhostが%のものができていればOKだ

別のマシンから接続する

さっきhogeuser(パスワードはpasso)というユーザーを作ったので、
別のマシンからそいつでMySQLにログインをしてみる。
IPは192.168.0.3という事にする。
mysql -h 192.168.0.3 -u hogeuser -ppasso

これでログインができたら成功。

設定に関してまとめ

今回は例として、すべてのIPから接続できるすべてのDBの権限を持つユーザーを作成したけれど、
実際運用する場合は権限を狭める必要がある。
ユーザーの利用できるデータベースを決めておいたり、参照するだけならばSELECTの権限だけを与えるなど。

とくにrootユーザーはローカルでのみの接続に制限しておいたほうがいい。

接続できるIPも決めておいて、
bind-addressもコメントアウトせず、接続できるIPを決めておいたほうがいい。

また今回はローカルのみの公開だけれども、
インターネット上に公開する場合はポートを変更することも必要だと思う。

MySQLについて読んでいる読者には釈迦に説法だけれども
ユーザー名やパスワードは公開しないように気をつけてください。※もちろんこの記事のパスワードは架空のものです。

スポンサードリンク

関連コンテンツ