今回の記事を読んで欲しい方
今回はMAMP環境でLaravelの開発を行っている方向けに、SQL設定方法ついて書いていこうと思います。
MAMPでLaravelを使う環境を構築するやり方は以下の記事でまとめています。ご覧下さい。
MAMPで使えるSQLの種類
MAMPでは、SQLite、MySQL、PostgreSQL、Microsoft SQL Serverが使えます。
それぞれを、軽く解説します。
SQLite
SQLiteは、オープンソースのデータベース軽量のRDBMS(データベース管理システム)です。
Liteとついている通りなのですが、簡易的なデータベースであり、アプリケーションに組み込む事によって利用します。
大掛かりなシステムのデータベースには利用されることはあまりないようです。
MacやWindowsは勿論のこと、iOSの開発でも利用できます。
MySQL
MySQLは、こちらもオープンソースのデータベースで、SQLのシェア2位であり(1位はOracle)、SQLiteと比較して大規模なシステムに利用されます。
WindowsやMacでは勿論使えますし、MAMPに標準で導入されているのでMAMPを使う分には設定の必要はないです。
また、データを確実に保護するためのセキュリティ機能が用意されているので、セキュリティが強力です。
PostgreSQL
PostgreSQLは、こちらもオープンソースのデータベースで、SQLのシェア4位です。
使いやすさ、拡張性で言えばMySQLに劣りますが、企業情報システムのデータベースなどとして採用されています。
Microsoft SQL Server
マイクロソフトが開発したデータベースで、SQLServerと省略されることが多いです。
複数人のユーザーが同時にアクセスできるうえ、データやユーザーごとにアクセス権限を付与することができます。外部のユーザーにデータを操作されることがなく、セキュリティに優れた仕様です。
Microdsoft社の製品なので、Macでも一応動作しますが他のSQLを使用した方が無難です。
データベースの利用
Laravelで使用するデータベースの情報は、作成したプロジェクト内にあるconfigファイル内のdatabase.phpです。
画像で貼りましたが、初見だとなんだこりゃってなっちゃいますよね。
でもよく見ると、sqliteやらmysqlやら、pgsqlやら、先ほど説明したSQLの設定が用意されている事に気づくかと思います。
デフォルトで使うデータベースの設定
画像の、18行目に以下の記述が書かれています。
MySQLがデフォルトのデータベースになっていることがわかります。
この「mysql」になっている箇所を、sqlite、pgsql、sqlsrvを指定すれば、それぞれSQLite、PostgleSQL、SQLServerに設定できるわけです。
MySQL、PostgleSQL、SQLServerを使用する際の注意点
この3つを使うときに、デフォルトでそれぞれ以下の記述になっています。
それぞれ画像の53,73,88行目です。
要は、パスワードが設定されていないよってわけです。
なのでご自身でパスワードを設定しておきましょう。
.env 環境変数について
データベースの環境構築はこれで完了ですが、環境変数というものを設定しておかなければなりません。
その.envファイルは、プロジェクトファイルからは見えないので、ターミナルで変更します。
ターミナルを開き、プロジェクトファイルの中に移動します。
その後、「ls -a」 コマンドを打ち込むと、.envファイルが存在することが確認できます。
その後、「vi .env」 コマンドを打ち込むと、.envファイルを編集することができます。
色々出てくるかと思いますが、今回はデータベースの設定だけしたいので、DBの設定以外は無視してOKです。
DB_CONNECTION=mysql と書かれていますが、デフォルトではMySQLが設定されていますよというわけです。
MySQLを使う場合は変更不要ですが、SQLite、PostgleSQL、SQLServerを使う際は変更が必要なので、変更方法を以下に記載します。
変更後、「:w」と打ち、変更を保存して終了しましょう。
SQLiteを使う場合の変更点
DB_CONNECTION=sqlite に変更し、その他の設定は削除
PostgleSQLを使う場合の変更点
DB_CONNECTION=pgsql
DB_PORT=5432
他は変更なし
SQLServerを使う場合の変更点
DB_CONNECTION=sqlsrv
DB_PORT=1433
他は変更なしでOK
今回のまとめ
いかがでしたでしょうか。
実際MAMP環境でLaravelの開発を行っている場合はMySQLが入っているのでほぼ変更の必要がないです。
実際の開発でもMySQLで事足りることが多いかもしれませんが、SQLite、PostgreSQL、SQLServerを使う場合は変更の必要があるので、参考にして下さい。