はじめに
PHP/Laravelの勉強にて備忘録として
前提
MySQLがインストールされていること
LaravelのDB接続設定ファイル
config/database.php
を開く
/*中略*/
'default' => env('DB_CONNECTION', 'mysql'),
/*中略*/
となっている。
env('DB_CONNECTION', 'mysql')
上記のenvはDB_CONNECTIONが設定されていればDB_CONNECTION
設定されていなければMySQLを使用という意味である
ここでLaravelの環境変数を見てみる。
tinker(php artisan tinker)を起動し、 print_r($_ENV)
を入力
$ php artisan tinker
$ print_r($_ENV)
<中略>
[APP_DEBUG] => true
[APP_LOG_LEVEL] => debug
[APP_URL] => http://localhost
[DB_CONNECTION] => mysql
[DB_HOST] => 127.0.0.1
[DB_PORT] => 3306
<中略>
DB_CONNECTIONはmysqlになっていることを確認。
ではLaravelの環境変数を決めているのは誰か。
プロジェクトトップにある.envファイルを開く
<中略>
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
<中略>
これの DB_CONNECTION=mysql
となっているところを使用したいDBに指定する。
今回はMySQLを使用するのでそのまま
/*中略*/
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
/*中略*/
config/database.php
で自分が使用するmysql(今回は)の詳細設定をする
重要なのはdatabase, username, passwordで、すべenvなので.envで編集する
<中略>
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
<中略>
今のままではDB名、ユーザ名、パスワードが上記のままなので変える。
<中略>
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
<中略>
上記のようにするとDB名がtest ユーザ名がrootでパスワード無しでログインする。
#####testデータベースを作成する
$ sudo service mysqld start
$ mysql -u root
mysql> CREATE DATABASE `test`;
データベースが接続されているか確認
$ php artisan tinker
>>> DB::connection();
=> Illuminate\Database\MySqlConnection {#2891}
タイムゾーン設定
タイムゾーンの設定を「東京(Asia/Tokyo)」にする
レコード保存時に時間情報が設定したタイムゾーンの時間で保存される
'timezone' => 'Asia/Tokyo',
以上