データベースの作成と設定

2018/10/12

mysql-logo_mini

Laravel5では、環境設定ファイルの環境変数をローカル環境や、実働環境に応じて簡単に変更できるように.envファイルが配置されています。

Composer経由でLaravelのプロジェクトを作成すると.envファイルが作成されます。

今回はデータベースを作成して.envファイルにデータベースの設定をします。

またconfigフォルダにあるapp.phpも編集して環境設定も行います。

 

.envファイルとconfig/database.phpの関係

Laravel5.2ではDBの設定ファイルが二つあります。

img1

1つは.envファイル。

もう1つはconfig/database.phpです。

まず、config/database.phpを見てみましょう。

'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', 'localhost'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix' => '',
    'strict' => false,
    'engine' => null,
  ],

envメソッドに注目します。

第1引数の定数が設定されているとそれを読み込み、設定されていなかったら第2引数の値を読み込みます。

第1引数の定数は.envファイルで指定しています。

:
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
:

どちらのファイルに設定してもいけます。

ただ、公式ドキュメントによると環境ごとに変わる情報(DBのログイン名とかパスワードとか)は基本的に.envファイルに記載するようになっています。

 

チュートリアル

実現したいこと

  • データベースを作成してLaravelに設定する

 

手順

1-1. データベースの作成 (※XAMPPのphpMyadminで作成する場合)

phpMyadminを開き、「データベース」→「データベースを作成する」で作成します。

create_db1

データベースを作成したら「特権」→「Add user account」でこのデータベースにアクセスできるユーザを作成します。

DB名: my_laravel
ユーザ: laravel_user
パスワード: a5tcvmiq

create_db3

 

1-2. データベースの作成 (※CentOSでDBを作成する場合)

仮想マシンで操作する場合はCUI(Character-based User Interface)での作業になります。

#ルートユーザでログイン
mysql -u root

#my_laravelというデータベースを作成
create database my_laravel;

#他のユーザ(laravel_user)に対してデータベース(my_laravel)の権限を付与する
grant all on my_laravel.* to laravel_user@localhost identified by 'a5tcvmiq';

#MySQLコマンドラインツールを閉じる
\q

 

2. envファイルの設定

最上位階層(プロジェクト名のディレクトリ直下)にある.envファイルを編集します。

データベースを作成したときの設定値をここで設定します。

DB_DATABASE=my_laravel
DB_USERNAME=laravel_user
DB_PASSWORD=a5tcvmiq

データベースの設定は以上で終わりです。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-基礎知識