hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

MySQL の設定

Ruby on RailsのようなWebアプリケーションフレームワークにとって、データベースは必ずセットで必要になると言っても過言ではない。Webアプリケーションに関連する全てのデータを保存しておく場所となるためである。例えばTwitterの例で考えてみると、データベースがなければ、ユーザーの情報も、ユーザーが呟いた内容も、保存しておくことができない。

データベースの種類

一口にデータベースと言っても、いくつかの種類がある。

  • 階層型データベース
  • ネットワーク型データベース
  • リレーショナルデータベース

この中で最も利用されているのが、リレーショナルデータベース
エクセルの表のような形で情報を整理し、管理することができる。そして、このリレーショナルデータベースを管理するソフトウェアはリレーショナル・データ・ベース・マネジメント・システム(RDBMS)と呼ばれる。

そんなRDBMSの中でも代表的なものの一つが、MySQL

 MySQL

MySQLは、Oracle社が開発・提供をしているRDBMS。データベースの作成、編集、削除などを行うことができる。オープンソースソフトウェアとして公開されており、誰でも無償で利用することができる。
Ruby on Railsと合わせ利用することができる。

Oracle社のMySQL紹介ページ

https://www.oracle.com/mysql/

MySQL公式ページ

https://www.mysql.com/

MySQLの設定と動作確認

MySQLの設定と起動を行い、デプロイするアプリケーションのデータベースが適切に使えるようにしていく。

今回のシステム構成は、以下のような形になっている。

server

一つのEC2インスタンスに、Railsをはじめ必要なソフトをすべてインストールしている。MySQLもそのうちの一つ。上の図で「データベースサーバー」と書かれているものが、MySQLに当たる。MySQLのようなソフトはデータベースの管理を行うため、そのように呼ばれることもある。

MySQLをインストールする

Amazon Linuxを利用している場合、MySQLは yum コマンドからインストールすることができる。

ターミナル(サーバー)
1
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install mysql56-server mysql56-devel mysql56

これは、MySQLのバージョン5.6をインストールすることを意味する。

MySQLを起動

MySQLを起動するために service コマンドを利用する。これは、Amazon LinuxCentOSに含まれているもので、インストールしたソフトウェアの起動を一括して行えるツール。

ターミナル(サーバー)
1
[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld start

mysql ではなく mysqld であることに注意する。「d」はLinuxの用語で「サーバ」を意味する「デーモン(daemon)」の頭文字。

起動できたか確認するために、以下のコマンドを実行する。

ターミナル(サーバー)
1
2
[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld status
mysqld (pid  15692) is running...

「running」と表示されれば、MySQLの起動は成功。

MySQLのrootパスワードの設定

yum でインストールしたMySQLには、デフォルトで root というユーザーでアクセス出来るようになっているが、パスワードは設定されていない。

そこで、以下のコマンドでパスワードを設定する。'設定したいパスワード'の部分については、例えばpassword0000という文字列を設定するとしたら、 'password0000'と記載する。
0から始まるpasswordは読み込んでくれないケースが多いので、避ける!
(例えば、’0331higuchi’など)

ターミナル(サーバー)
1
[ec2-user@ip-172-31-25-189 ~]$ sudo /usr/libexec/mysql56/mysqladmin -u root password 'ここを設定したいパスワードに変更してからコマンドを実行してください'

このパスワードは、後ほどRailsからアクセスする時にも利用するので記憶しておく。

この時、Warning: Using a password on the command line interface can be insecure.と警告がでることがあるが、ここでは無視していただいて問題ない。

MySQLへの接続確認

設定したパスワードが使えるか確認してみる。

ターミナル(サーバー)
1
[ec2-user@ip-172-31-25-189 ~]$ mysql -u root -p

Enter password: とパスワードを入力するように表示されるので、先程設定したパスワードを入力して、Enterする。以下のように表示されれば、MySQLの設定は終了。

ターミナル(サーバー)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.33 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

まとめ

作業の流れ

  • MySQLをインストールする
  • MySQLのrootユーザーのパスワードを設定する