LoginSignup
22
36

More than 3 years have passed since last update.

Laravel データベース接続の設定

Posted at

Laravelで作成したデータベースに接続するための設定を解説します。

database.php

config/database.phpにデータベースの接続設定を記述します。

初期設定はmysqlになっています。
ここを切り替えることで、connectionsキー内にあるその他のデータベースも使用することができます。

'default' => env('DB_CONNECTION', 'mysql'),

使用するデータベースの内容を確認します。

config/database.php
'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', ''),
            'username' => env('DB_USERNAME', ''),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

env()は、Laravelのヘルパ関数です。
デフォルトでは、.envに記載した値をdatabase.phpが読み込むようになっています。

config/database.php
 'database' => env('DB_DATABASE', 'quick_laravel'),
 'username' => env('DB_USERNAME', 'quickusr'),
 'password' => env('DB_PASSWORD', 'qucikpass'),

第二引数に値を直接記述することも可能です。

.env

通常は、.envにDB環境設定を記述します。

.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=quick_laravel
DB_USERNAME=quickusr
DB_PASSWORD=quickpass

.envはGitリポジトリのソースコントール外にあるので、環境設定が公開されることはありません。

SQLSTATE[HY000] [2002] Connection refused 等のエラーが表示される場合、上記の設定のどこかが間違っていると考えられます。

.envを変更しても接続できない場合は、下記の記事を参照してください。
Laravelで.envファイルが反映されない時

22
36
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
22
36