質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

解決済

php artisan migrateでcould not find driverというエラーが出てしまう

user_kf
user_kf

総合スコア10

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

1回答

1グッド

1クリップ

14334閲覧

投稿2020/02/26 08:41

編集2020/02/27 09:20

前提・実現したいこと

PHP(Laravel)の学習で、掲示板アプリを作っています。
Laravelを使用していて、php artisan migrateをしようとしていますが、PDOException::("could not find driver")というエラーメッセージが出てしまい、先に進めません。

発生している問題・エラーメッセージ

Illuminate\Database\QueryException : could not find driver (SQL: select * from information_schema.tables where table_schema = prc_miniblog and table_name = migrations and table_type = 'BASE TABLE')
Exception trace:

1 PDOException::("could not find driver")
C:\MAMP\htdocs\laraveltest\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70

該当のソースコード

env

1DB_CONNECTION=mysql 2DB_HOST=localhost 3DB_PORT=3306 4DB_DATABASE=prc_miniblog 5DB_USERNAME=root 6DB_PASSWORD=root 7DB_SOCKET=""

database

1'connections' => [ 2 'mysql' => [ 3 'driver' => 'mysql', 4 'host' => env('DB_HOST', 'localhost'), 5 'port' => env('DB_PORT', '3306'), 6 'database' => env('DB_DATABASE', 'prc_miniblog'), 7 'username' => env('DB_USERNAME', 'root'), 8 'password' => env('DB_PASSWORD', 'root'), 9 'unix_socket' => env('DB_SOCKET', ''), 10 'charset' => 'utf8', 11 'collation' => 'utf8_unicode_ci', 12 'prefix' => '', 13 'prefix_indexes' => true, 14 'strict' => true, 15 'engine' => null, 16 'options' => extension_loaded('pdo_mysql') ? array_filter([ 17 PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), 18 ]) : [], 19 ], 20 ],

試したこと

■ php.iniファイルで、以下のコードがコメントアウトされていないか確認。
extension_dir = "C:\MAMP\bin\php\php7.2.14\ext"
extension=php_mysqli.dll
extension=php_pdo_mysql.dll

■ extension_dirで指定されたディレクトリに、以下のファイルがあることを確認。
php_mysqli.dll
php_pdo_mysql.dll

■ phpInfoで以下の情報を確認
PDO Support で PDO driversがmysqlになっている。
PDO Driver for MySQLのClient API versionで、mysqlnd 5.0.12-dev - 20150407 が表示されている。

いろんなサイトを見て試しましたが、どうしても解決できません。
よろしくお願いいたします。

補足情報(FW/ツールのバージョンなど)

windows 10
MAMP 4.1.1.18195
PHP 7.2.14
MySQL 5.7.24
Laravel Framework 6.17.0

追記: 自己解決

コマンドプロンプトで、php --ini で読み込んでいるphp.iniファイルを確認すると
Loaded Configuration File: C:\MAMP\bin\php\php7.2.14\php.ini

しかし、MAMPからphpInfo()で確認をすると
Loaded Configuration File C:\MAMP\conf\php7.2.14\php.ini
となり、読み込まれているphp.iniファイルが違うということが判明。

どうして、そうなるのかは分かっていないのですがコマンドプロンプトで表示されているphp.iniを置き換えてやることで問題解決しました。

nayaka👍を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

2

自己解決

###追記: 自己解決

コマンドプロンプトで、php --ini で読み込んでいるphp.iniファイルを確認すると
Loaded Configuration File: C:\MAMP\bin\php\php7.2.14\php.ini

しかし、MAMPからphpInfo()で確認をすると
Loaded Configuration File C:\MAMP\conf\php7.2.14\php.ini
となり、読み込まれているphp.iniファイルが違うということが判明。

どうして、そうなるのかは分かっていないのですがコマンドプロンプトで表示されているphp.iniを置き換えてやることで問題解決しました。

投稿2020/02/27 09:22

user_kf

総合スコア10

jin_kakei, nayaka👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト