Laravelデータベース接続テスト中にエラー(Mac)「Illuminate/Database/QueryException with message 'could not find driver (SQL: select * from `users`)' 」

Laravelとデータベースを接続しようと設定中にphp artisan tinkerしApp\User::all()->toArray();でユーザをみようとしたところエラーがでた。「Illuminate/Database/QueryException with message 'could not find driver (SQL: select * from users)' 」

ドライバーが見つからないらしい。DBの前にやらなければいけないことがありそうだ。

動作環境

ざっくり動作環境はMacのEl capitan。
php-7.2.5
Homebrew使ってます。
phpbrewつかってます。

php.iniの修正

php.iniを修正するとの意見があり、php.iniのファイルを探すも見つからない。Macは少しパスが違うらしい。

ターミナルで以下コマンドを実行。

$ php -i | grep php.ini

■ response

Configuration File (php.ini) Path => /Users/k/.phpbrew/php/php-7.2.5/etc
Loaded Configuration File => /Users/k/.phpbrew/php/php-7.2.5/etc/php.ini

php.iniの場所がわかったので、さっそく開いてみたが見当違いだったらしい。

念のため読み込んでいるPHP.iniの確認

php --ini

パスは正しいようだ。

php-mysqlndを入れる(解決)

phpは5.3より前のバージョンではphp-mysqlというパッケージを使ってphpとMySQLのやりとりが行われていたが、php5.3以降はphp-mysqlndというパッケージを使うことが推奨されているらしい。

怪しいのでphp-mysqlndをいれたいか、windowsのやり方ばかりでMacのやり方がわからない。

だめもとでインストール試みた。

brew install php-mysqlnd

だめだった。

わからないのでmysqlのパッケージ付きで再度PHPをインストールしてみる。

phpbrew install 7.2.5 +default +mysql

エラーが変わった。ドライバーは認識したということでこのエラーは解決。

一応出ているエラーは以下

PHP Parse error: Syntax error, unexpected T_NS_SEPARATOR, expecting T_STRING on line 1

Syntax errorなのでドライバー問題は解決。
にしてもまたエラーか。

参考サイト:Ubuntu18.04.1にphpbrew+php7.2+apache2+MySQL5.7の開発環境を整える方法

laravel, php

Posted by Nakamoto