##Railsとデータベース
今回はRailsからアクセスされるデータベース関連のデータベースを作成します。
Ruby on RailsのようなWebアプリケーションフレームワークにとって、データベースはセットで考えます。例えばTwitterで考えてみると、データベースがなければ、ユーザーの情報も、ユーザーが呟いた内容も、保存しておくことができません。
##データベースの種類
階層型データベース
ネットワーク型データベース
リレーショナルデータベース
があります。
この中で最も利用されているのが、リレーショナルデータベースです。
エクセルの表のような形で情報を整理し、管理することができます。そして、このリレーショナルデータベースを管理するソフトウェアはリレーショナル・データ・ベース・マネジメント・システム(RDBMS)と呼ばれます。
そんなRDBMSの中でも代表的なものの一つが、MySQLです。
##MySQL
Oracle社が開発・提供をしているRDBMSです。データベースの作成、編集、削除などを行うことができます。オープンソースソフトウェアとして公開されており、誰でも無償で利用することができます。
Oracle社のMySQL紹介ページ
MySQL公式ページ
MySQLをインストールします。
Amazon Linuxを利用している場合、MySQLは yum コマンドからインストールすることができます。
ターミナル(サーバー)は[ec2-userです。普通のターミナルはターミナル(ローカル)とします。
ターミナル(ローカル)
$ cd .ssh/
$ ssh -i ダウンロードした鍵の名前.pem ec2-user@作成したEC2インスタンスと紐付けたElastic IP
これでターミナル(サーバー)に入れたと思います。
ターミナル(サーバー)
[ec2-user@ip-172-31-25-189 ~]$ sudo yum -y install mysql56-server mysql56-devel mysql56
これは、MySQLのバージョン5.6をインストールすることを意味します。
MySQLを起動するためにserviceコマンドを利用します。これは、Amazon LinuxやCentOSに含まれているもので、インストールしたソフトウェアの起動を一括して行えるツールです。
ターミナル(サーバー)
[ec2-user@ip-172-31-25-189 ~]$ sudo service mysqld start
mysqlではなくmysqldであることに注意しましょう。「d」はLinuxの用語で「サーバ」を意味する「デーモン(daemon)」の頭文字です。
起動できたか確認するときは
ターミナル(サーバー)
[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は読み込んでくれないケースが多いので、避けましょう.
(例えば、’0123password’など)
ターミナル(サーバー)
[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への接続確認
設定したパスワードが使えるか確認の仕方です。
ターミナル(サーバー)
[ec2-user@ip-172-31-25-189 ~]$ mysql -u root -p
Enter password: とパスワードを入力するように表示されるので、設定したパスワードを入力して、Enterしてください。以下のように表示されれば、MySQLの設定は終了です。
ターミナル(サーバー)
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>