PHPのフレームワークであるLaravelは、データベースに接続せずとも動作確認や最低限の利用はできます。
しかし現実的には、ほとんどのケースでデータベースと接続してWebアプリケーションは構成されます。そのため、誰しも覚えるべきステップと言えるでしょう。
本ページでは、初心者の方を対象に、Laravelでデータベースを利用できるようにする設定を解説します。具体的には、データベースを作成し、.envファイルの設定までを行います。
それでは一緒に始めましょう!
データベースの用意
今回は学習・開発用を想定しているため、ローカル(自分のPC)にMySQLを用意することを前提としています。
MySQLに、phpMyAdminでデータベースを作成するところまでを行っておきます。
ソフトウェアのインストール
データベースソフトウェアがまだ無い場合、インストールしておく必要があります。
すでにMySQLをインストール済みの方は次のステップに進んでOKです。
以下ではWindows11を対象に、MySQLのインストール方法をご紹介していますのでご参考ください。
Windows10でも応用が利きます。
その他OSの記事は、今後追加予定です。
本ページでは他にPHPやウェブサーバーが必要になるため、もしフルセットでインストールしたい場合は、XAMPPやMAMPの方が簡単なのでお勧めです。
MySQLを起動する
どのようにしてMySQLをインストールしたかによっても異なりますが、MySQLが起動した状態にしておいてください。
例えばWindowsの場合、MySQLをインストールすると、特に指定を外さない限りはサービス(要は常駐プログラム)としてインストールします。ですので、MySQLはすでに起動しているはずです。
XAMPP, MAMP, Local by Flywheel等をお使いの場合はそれらのソフトを起動させておきましょう。
phpMyAdminを用意する
MySQLは、コマンドライン(ターミナルやPoserShell)等の黒い画面からも操作できますが、初心者には難しいものです。フリーランス歴20年の私でもめったにやりません。
そんな私たちに嬉しいのが、WebブラウザからMySQLを操作するソフトウェアです。phpMyAdminという、PHPで記述されたこの便利なソフトウェアを使いましょう。
以下ページで、Windows11にphpMyAdminをインストールする方法をご紹介しています。PHPさえ動作すれば、他のOSでも応用がききます。
データベースを用意する
ようやくデータベースを作る行程にたどり着きました!
具体的には、MySQL内に新規データベースを用意します。ここで言うデータベースとは、データを入れる器とお考えください。
ローカル環境のphpMyAdminにログイン後、以下の様にしてデータベースを作成しましょう。
②の部分はあなたの好きな名称でOKです。半角英数字やアンダースコア等が無難です。後で使いますので控えておいてくださいね。
③の部分は任意ですが、多くの場合は以下のいずれかです。
- utf8mb4_general_ci:
大文字と小文字の区別をせず、単純な文字比較アルゴリズムを使用します。精度はutf8mb4_unicode_ciよりやや低いですが、パフォーマンスが良いです。 - utf8mb4_unicode_ci:
Unicode標準に基づくより複雑で精度の高い文字比較を行います。utf8mb4_general_ciより精度は高いが、パフォーマンスは若干低下します。
general系の方は、良くも悪くも濁点等を含む文字を同じ文字として検索可能なことが多いです。
曖昧検索もできるのを良しとするか悪しとするかは、作るWebアプリケーション次第です。
Laravelに設定する
.envファイルを修正する
Laravelのルートディレクトリに、.env
ファイルがあります。その中にデータベースのアクセス情報を設定します。以下のように記述されている箇所を探してみてください。(XXXX部分はダミーです)
DB_CONNECTION=XXXX
DB_HOST=XXXX
DB_PORT=XXXX
DB_DATABASE=XXXX
DB_USERNAME=XXXX
DB_PASSWORD=XXXX
左が設定名で、=
を挟んで右が数値ですので、以下を参考に設定しましょう。先ほど作ったデータベース名もここで入力します。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laranext
DB_USERNAME=usename
DB_PASSWORD=password
内訳を解説します。
- DB_CONNECTION
データベースの種類を宣言します。 - DB_HOST
MySQLのマシンのIPアドレスを指定します(127.0.0.1は自分のPCを指す)。 - DB_PORT
MySQLへ接続する際のポートを指定します(3306が多い)。 - DB_DATABASE
データベース名を指定しています(先ほど作ったもの)。 - DB_USERNAME
MySQLにアクセスする際のユーザー名を指定しています。 - DB_PASSWOR
DB_USERNAMEに対応するパスワードを指定しています。
1~3は、MySQLの環境によって異なります。ただ、個別に指定していない場合は、私と同じ場合も多いでしょう。
動作確認
これでLaravelでデータベース(MySQL)が使えるようになったはずです。
Laravelには、初期テーブルを作るコマンドが用意されています。それで動作確認してみることにします。
ターミナルやPoserShellで、Laravelのルートディレクトリを開き、以下のコマンドを実行します。
php artisan migrate
もしここでIlluminate\Database\QueryException
のような文字列が出たら失敗です。.env
を再確認しましょう。
以下のようになればMySQLが正しく設定できています。
php artisan migrate
INFO Preparing database.
Creating migration table ............................................................................................................... 23ms DONE
INFO Running migrations.
2014_10_12_000000_create_users_table ................................................................................................... 34ms DONE
2014_10_12_100000_create_password_reset_tokens_table ................................................................................... 16ms DONE
2019_08_19_000000_create_failed_jobs_table ............................................................................................. 33ms DONE
2019_12_14_000001_create_personal_access_tokens_table .................................................................................. 46ms DONE
メッセージを見ると分かるとおり、4つのテーブルが作成されたとあります。これはphpMyAdminからも確認できます。
あれ、5つ出来てる!?
1つ多いですが、Laravelがテーブル作成を管理するmigrationsテーブルを作るからです。
まとめ
以上、Laravelにデータベース(MySQL)を設定する方法をご紹介しました。慣れてくれば、息をするかのごとく設定できるようになるはずです。
もしも分からない点等がありましたら、コメント欄にお気軽に書き込んでいただければと思います。
データベースが使えるようになると、よりLaravelが面白くなってきます。是非、楽しみながら学んでくださいね。
コメント