【Laravel】データベースを用意する【MySQL】

対象 ローカルにMySQLを用意したい人 Macの人

書いている人 プログラミング歴2年くらい

前提  Homebrewをインストールしている。

環境 PC:M1 mac Laravel: Version 9.0.1 

参考 https://prog-8.com/docs/mysql-env

前にLaravelでデータベースを使用する際に、SQLiteを使用する記事を挙げたが、やっぱりMySQLを手元に用意したくなった。

MAMPやLaravel Sailを使えば丸ごと環境を用意できるが、今回はローカルにMySQLを用意して、LaravelプロジェクトのDBとして使えるところまで見ていく。Homebrewを通して、MySQLをローカルへインストールするのでHomebrewを入れていない人は入れておこう。

Homebrew:https://brew.sh/index_ja

参考にプロゲートのリンクを貼ったが、かなりわかりやすいのでそちらも参考にして欲しい。

目次

HomebrewでMySQLを探す

HomebrewをPCへインストールしたら、さっそく、MySQLを入れていこう。MySQLと言っても、いくつかバージョンがあって最新のバージョンは8。

brew search パッケージ名でHomebrewで取得できるパッケージを表示してくれる。

今回はMySQLを落としてきたいので、ターミナルを開いて、brew search mysqlコマンドを打とう。

パッケージをインストールしたら自動的に既存のHomebrewのパッケージがupdateされるが、brew updateコマンドを事前に叩いておくとターミナルが見やすいかも。

この表示になったら準備完了だ。

brew search mysqlコマンドを入力すると以下のような感じで表示されるはずだ。

なんだが一杯ファイルがあって分からないが、Formulaeに表示されている赤線部分がmysql本体だ。mysql@5.6とかmysql@5.7は@マークの後ろに書いてある通り、mysqlのバージョンを示している。@も何もないmysqlはバージョン8のことだ。

赤線部分がmysqlだ

欲しいバージョンのMySQLをインストールする

brew install パッケージ名でパッケージを取得できるので、自分の望むMySQLを落としてこよう。今回自分は、MySQL5.7を使用していくので、brew install mysql@5.7とターミナルで入力した。

コマンドを入力して以下のような表示になったらインストール成功だ。

パスの部分はMacによって変わると思う。

ビールの絵が出たら成功なのかな。

PATHを通す

MySQLのインストールに成功したら次はPATHを通しておく。英語でもPATHを通してね的なことが書かれてたので言う通りに。

もしパス通してなかったら、パス通してねって書かれてる。

PATHについてわからなかったら以下の記事も参考にどうぞ。PATHを通すことでmysqlコマンドが使えるようになる。

echo 'export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrcコマンドをターミナルで入力しよう。

Macの環境によって、mysqlコマンドの格納されている場所が変わるはずなのでMySQLをインストールした時に表示されるコマンドを入力しよう。


上のコマンドを入力したら、自分の場合はユーザーフォルダ直下の.zshrcファイル(人によってはbashファイルかも)に反映されるはずなので一応確認しておく。

~.zshrcファイルに反映されていた。

上のコマンドを入力したら、source ~/ .zshrcコマンドを入力しよう。これでmysqlコマンドが使えるようになるはずだ。

mysqlコマンドが使えるか、mysql --versionで確認しよう。

以下のように表示されればmysqlコマンドが使えるようになったぞ。

MySQLのバージョン5.7と表示された

ver14.14とか出てくるから一瞬勘違いするが、Distribの後ろに書かれているのがMySQLのバージョンだ。

MySQLサーバーをスタートする

いよいよこれでMySQLが使えるようになったので、さっそくMySQLサーバーをスタートする。

mysql.server startコマンドでMySQLサーバーをスタートさせよう。Starting MySQLと表示が出てきてSUCCESS!とでてくれば成功だ。

この表示になったら成功だ!

ちなみに、mysql.server statusコマンドでMySQLが動いているかぐ状態がどうなっているかわかるので打ってみよう。

MySQLが走っていることがわかる。


また、mysqladmin pingコマンドでも状態確認ができる。

こんなコマンドが返ってくる。

mysql.server stopでサーバーを停止できる。

MySQLコマンドを停止させた。

サーバーが停止している状態で、mysql.server statusを打ってもmysqlが走っていいないことが確認できる。

エラーと表示される。

Homebrewのコマンドを利用してもmysqlを起動することもできる。
brewコマンドとmysqlコマンドの違いは、Macを再起動させてもMySQLサーバーが動いているか動いていないからしい。
brew start services
brew stop services
brew status

MySQLにログインする

サーバーが動いているのが確認できたら、MySQLにログインしてみよう。特にパスワード設定などをしていないのでmysql -urootコマンドだけでMySQLへと入れる。ちなみに後ろのオプション部分は、 --user rootでも --user==rootでもOKだ。

mysql_secure_installationでmysqlのrootやパスワードの細かい設定ができる。今回は特に何もしていない。

MySQLへとログインした。

ログインに成功すると、コマンドプロンプトが以下のようになる。この状態でSQL文を投げて、データベースを操作できるぞ。

コマンドプロンプトが変更された。

この状態で、SHOW DATABASES;コマンドを打ってデータベースを確認してみよう。MySQLの元々のデータベースが表示されるはずだ。

この4つは初期のデータベースだ。

MySQLから抜け出したかったら、exitコマンドで抜けられる。

Byeと言われた。

GUIでMySQLを確認する

MySQLを使えるようになったのはよかったけれど、Laravelなどで一々ターミナルからデータベースを見るのは面倒臭い。MySQLと言ったら、やっぱりphpMyAdmin。ただ、ローカルにphpMyAdminを入れるのは結構難しかったので、今回は別の方法で確認していく。

MySQLサーバーを止めている人はスタートさせておいてください。それからLaravelからデータベースの接続を確認するのでよかったらローカルにプロジェクトを用意しておいて確かめてみてください。

VScodeの拡張機能で確認してみる。

最近知ったやり方だが、個人的にかなり好み。たぶんエディタはVScodeを使っている人が多いと思うが、その拡張機能を使う方法だ。これを使うとVScodeで全て一貫することができて見やすい。ただこの拡張機能MITライセンスというもので、公式でちゃんと?フォローされていないらしい。よくわからないが自己責任でお願いします。有料版もあるみたいだが、無料版で利用します。

使う拡張機能はDatabase Clientという機能。VScode上からこれを検索して、有効にしておく。

この拡張機能を使う。

有効にすると、左側のバーにDBのアイコンが2つつ以下される。

アイコンが追加された。

上がSQL型で下がNoSQL型っぽい、今回はMySQLなので上のアイコンをクリックしよう。

最初はまだ、MySQLへと接続していない状態なので左のタブに出てくる、Create Connectionをクリックしよう。

Create Connectionをクリック。

すると以下の画面になる。MySQL以外にも他のデータベースと接続できる。今回はもちろんMySQLなのでMySQLを選択。

HostやUsername、Portは特にMySQL側でいじってなければそのままで入れるはずだ。Hide System SchemaはMySQLのシステムスキーマなどを表示させるかっていう意味だ。こちらは好みで。

後は、Connectをクリックしよう。

MySQL以外にも接続できるみたい。

成功すると、上の方にSuccessの表示が出て、左のタブにはデータベースが表示されているはずだ。(※初期スキーマを隠す設定にしていたら出ないはず)

接続に成功。
これはMySQLのシステム用スキーマ。

接続に成功したので、さっそく新しくデータベースを作成して、Laravelでmigrateしていこう。

データベースを作成するには左のバーから+ボタンをクリックしよう。

+ボタンをクリック

すると、sqlファイルが勝手に表示されるので、[name]の部分を好きな名前にして左上のRun SQLを押そう。

こんなタブが勝手に出てくる。
nameを適当に変更してRun SQLを押す。

SQLを走らせると、新しいデータベースが作成されるはずだ。

SQLが走った。
新しくデータベースが生成された。

データベースの生成に作成したので、Laravel側からmigateコマンドを走らせよう。その前に.envファイルを修正する。DB_DATABASEのところを作成したデータベース名と合わせておこう。

データベースを合わせておく。

.envファイルに修正を加えたら、migrateしよう。php artisan migrateでうまくいけば、データベースに構造が作られるはずだ。

Migrationに成功した。

migrationに成功したら、DBアイコンをクリックしよう。おそらく更新しないと反映されないはずなので、Refreshアイコンをクリックしてみよう。

更新!

すると、新しいデータベースにテーブルが作成されているはずだ。

テーブルが表示された。

テーブルを選択すると、そのページが開かれる。データの中身はないが、ここにデータが反映されていく。

usersテーブルを開いた。

今回は、VScodeの拡張機能を使ったが、以前SQLiteでも確認した、TablePlusを使ってももちろんOKだ。

まとめ

  • Homebrewで好きなバージョンのMySQLを探してインストールする。
  • MySQLコマンドを使うためにPATHを通す。
  • MySQLのサーバーを立ち上げて、MySQLへとログインする。
  • VScodeの拡張機能を使ってDBを見やすく表示。(お好みで)

やってることはかなりシンプル。Laravelを学習する時にMAMPやLaravel Sailなどを使って環境構築を使えばそもそもMySQLをローカルに用意する必要はないが、ローカルでMySQLを落として探っているとエラーが出たりそれを解決したりと色々勉強になったので余裕のある人はぜひ試してみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次