AWS+laraveのDBセッティング

AWS php/laravel

laravelで使うDBの選定

AWSのRDBサーバーを別に立てようかと思ったのですが、
無料枠で2インスタンスを起動させるのは無料枠を出てしまう。
お金をかけてがっつり使うならAmazon Auroraも候補に入れていました。

ここで無料で使う候補としては

  • mysql
  • postgres
  • mariadb

mysql・mariadb系とpostgres系だとpostgres系の方が
インスタンス料金が高いので、今回はミニマムで作る予定なので
mysql・mariadbを採用します。

最初はmariadbを採用する予定でしたが、途中で少し使い辛い所があり
mysqlを採用に変更しました。

mariadbのインストールの場合

sudo yum install -y mariadb-server

mariadbの起動

sudo systemctl start mariadb

mysqlをインストールの場合

mysql8.0リポジトリの追加(このリポジトリに5.7も含まれています)

sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm -y

mysql8.0リポジトリの無効化

sudo yum-config-manager --disable mysql80-community

mysql5.7リポジトリの有効化

sudo yum-config-manager --enable mysql57-community

mysql5.7がインストールできるか確認

yum info mysql-community-server

下記コマンドでインストール

yum -y install mysql-community-server

mariadbとmysql共通

mysqlの起動

sudo systemctl start mysqld.service

rootのパスワードの確認

cat /var/log/mysqld.log | grep password

初期設定

mysql_secure_installation

ログイン

mysql -u root -p

ユーザーを作成する。

create user ユーザー名

パスワードを変更する。


set password for ユーザー名 = password('設定するパスワード');

データベースの作成

create database データベース名

LaravelとDBの接続設定

設定ファイルを編集する。Laravelを編集したフォルダに移動する。

.envファイルを編集する。

config/database.phpもあるが、.envを設定すればenv()関数で値を参照するようになっているのでこちらはいじらなくて良い。

vi .env

でファイルを下記のように編集

DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=作成したデータベース名を入力
DB_USERNAME=ユーザー名を入力
DB_PASSWORD=パスワードを入力

今回はAPサーバーとDBサーバーが同じなのでDB_HOSTはlocalhostを設定する。

ポート番号は初期は3306なので変更はないが確認する場合はsqlコマンド

show variables like 'port';

を実行すれば確認できる。

Laravelのマイグレーションを実行

laravelをインストールしたフォルダに移動して下記コマンドでテストテーブルを作成する為のマイグレーションファイルをdatabase/migrations配下に作成してくれます。

php artisan make:migration create_tests_table --create=tests

上記以外で、さくっと認証画面を作成するコマンドを使ってDBと画面遷移をテストする場合は下記のコマンドを実行する。

php artisan make:auth

マイグレーションの実行

php artisan migrate

コマンドを実行してMigration table created successfully.が表示されれば成功。

追加でマイグレーションファイルを追加した場合は下記コマンドで実行する。

php artisan migrate:refresh

上記がうまくできていれば、DBにテーブルが作成されているのですが、今後使いやすいようにクライアントにDBeaverと言うクライアントソフトで接続して確認する。

DBeaverのインストール

下記よりDBeaverをダウンロードしてインストールする。

DBeaverの設定としては下記の通り

SSHタブを選択しAWS接続の際に使用したpemファイルを読み込ませて接続すれば完了。

テーブルが見る事ができれば完了