1
1

More than 3 years have passed since last update.

DBとLaravelの接続設定【備忘録】

Last updated at Posted at 2019-12-15

はじめに

PHP/Laravelの勉強にて備忘録として

前提

MySQLがインストールされていること

LaravelのDB接続設定ファイル

config/database.php を開く

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ファイルを開く

.env
<中略>
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
<中略>

これの DB_CONNECTION=mysql となっているところを使用したいDBに指定する。
今回はMySQLを使用するのでそのまま

config/database.php
        /*中略*/
        '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で編集する

.env
<中略>
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
<中略>

今のままではDB名、ユーザ名、パスワードが上記のままなので変える。

.env
<中略>
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)」にする
レコード保存時に時間情報が設定したタイムゾーンの時間で保存される

config/app.php
    'timezone' => 'Asia/Tokyo',

以上

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1