web-dev-qa-db-ja.com

php artisan migrate throwing [PDO Exception]ドライバが見つかりませんでした-Laravelを使用

Laravelのインストール中に悪い経験をしました。しかし、私はそうすることができ、次のレベルに進むことができました。ジェネレーターを使用して移行を作成しました。しかし、最後のコマンドを入力すると

php artisan migrate

PDOExceptionがスローされています-ドライバーが見つかりませんでした。

       'mysql' => array(
            'driver'    => 'mysql',
            'Host'      => 'localhost',
            'unix_socket'   => '/Applications/MAMP/tmp/mysql/mysql.sock',
            'database'  => 'database',
            'username'  => 'root',
            'password'  => '',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),

これがconfig/database.phpの私の構成です。

Stackoverflowとlaravelフォーラムで検索してみたところ、人々はPDOの問題であり、職人やphpの問題ではないことを示唆しています。

extension=pgsql.so
extension=pdo_pgsql.so

php.iniで

肯定的な結果はありません。常に[PDOException]could not find driver.と表示されます

誰かがこれを解決するのを助けてください。

私が使用している環境:Mac、laravel 4、MAMP PROとphp 5.4.4

35

使用できます

Sudo apt-get install php7-mysql

または

Sudo apt-get install php5-mysql

または

Sudo apt-get install php-mysql

これは私のために働いた。

52
narendro

これは私のために働いた:

Sudo apt-get install php5-sqlite

これによりphp5のsqliteがインストールされ、php artisan migrateコマンドを再度実行して完全に機能しました。

19
Alejandro

Pdo_mysqlプラグインを特に有効にする必要があります。標準のPHPインストールを使用していると仮定すると、一般的にこれをPHP.iniファイルに追加するだけです。

extension=pdo_mysql.so

ただし、このファイルが拡張ディレクトリに存在することを確認する必要があります。

pdo_pgsql.soを追加しても、PostgreSQL用であるため、役に立ちません。

さらに、PHP iniファイルに変更を加えた後は、変更が反映されない可能性があるため、必ずWebサーバーを再起動してください。

17
JaTochNietDan

ここで同じ問題に遭遇しましたが、これはコマンドラインのPHPがブラウザバージョンとは異なるphp.iniファイルを使用しているためです。ブラウザでphpinfo()を見ます。

この回答 に従って、次のコマンドを実行するだけです:

php --ini

コマンドラインで、現在ロードされているphp.ini(おそらく実際には通常のphp-cli.iniファイルと同じ場所にあるphp.iniファイル)へのパスが表示されます。

見つかったら、必要なpdo拡張機能で変更します(この場合はMySQLの場合)。

extension=pdo_mysql.so

または、Windows上で何らかのWAMPサーバーを使用している他のユーザーの場合、代わりに次のようになります。

extension=php_pdo_mysql.dll
7
Leith

Php5のmysqlドライバーを見逃したと思います。以下のコマンドを実行します:

Sudo apt-get install php5-mysql
/etc/init.d/php5-fpm restart
6
Robin Wang

Laravel .envファイルも確認してください。 DB_CONNECTION=mysqlを確認してください。そうしないと、MySQLで動作しません。他のものをロードしようとしました。

4
Thach Van

PDOドライバーがありません。

最初にドライバーをインストールします

Ubuntuの場合:mysqlデータベースの場合。

Sudo apt-get install php5.6-mysql/php7.2-mysql

他のデータベースシステムを検索することもできます。

ドライバーを検索することもできます。

Sudo apt-cache検索ドライバー名

Then Run the cmd php artisan migrate
3
abhishek subedi

php mysqlの最新バージョンをインストールする必要があります。私の場合、php7.1-mysqlをインストールしています。

これを試して

Sudo apt-get install php7.1-mysql

私はlaravelの最新バージョンを使用しています

2
JalalKun

私も同じエラーを受け取っていました-> "[PDOException]
ドライバーが見つかりませんでした "

その後、私は多くのコマンドを使用しましたが、何の助けも得ませんでした

最後に、次のコマンドを使用して問題を解決しました。

Sudo apt-get install php5-sqlite

2
hmmm

Laravel Testing with sqlite php pdo sqlite driversが必要

Ubuntu 14.04の場合

Sudo apt-get install php5-sqlite
Sudo service Apache2 restart

Ubuntu 16.04にはphp5-sqliteはありません

Sudo apt-get install php7.0-sqlite
Sudo service Apache2 restart
2
Sagar Koshti

同じ問題を抱えており、WebサイトはMAMPのphpで実行されていますが、コマンドを呼び出すと、macが実行されます(bashパスが変更されていない場合)。 Macにこれらの拡張機能がない場合は問題が発生します。

php -iを実行して、ロードされた拡張機能を見つけ、見落とした拡張機能をインストールします。または '/Applications/MAMP/bin/php/php5.3.6/bin/php artisan {your command}'を実行してMAMPを使用します

2
Entrust

Debianでこの問題が発生しました。問題は、最近のPHPパッケージにdotdebリポジトリを使用していたことです。何らかの理由で、php cliを7.0に更新しましたが、web phpバイナリはphp 5.6のままでした。 この回答 を使用して、phpコマンドラインバイナリを5.6バージョンにリンクしました。

$ Sudo ln -sfn /usr/bin/php5 /etc/alternatives/php
1
user151841

PostgreSQLでこのエラーが発生しました。解決策は次のとおりです。

Sudo apt-get install php7.1-pgsql

インストール済みのPHPバージョンのみを使用する必要があります。私のバージョンは7.1です。これにより、PostgreSQLの問題が修正されました。

1
MKJ

これは私と一緒に働いた:(pgsqlの場合:「mysql」の代わりに「pgsql」を使用)

ステップ1)

Sudo apt-get install php-mysql

ステップ2)

php artisan config:clear

ステップ3)

php artisan config:cache

ステップ4)
次にサーバーを再起動し、キーを再生成して移行します。完了

1

Ubuntu 14.04が見つかりません

以下のコマンドでこの問題を解決しました。

Sudo apt-get install php-mysql

私の場合、PHPバージョンを5.5.9から7.0.8に更新した後、他の2つのエラーを含むこのエラーを受け取りました。

エラー:

  1. laravel/framework v5.2.14にはext-mbstringが必要です*->要求されたPHP拡張mbstringがシステムにありません。

  2. phpunit/phpunit 4.8.22にはext-domが必要です*->要求されたPHP拡張domがシステムにありません。

  3. [PDOException]
    ドライバーが見つかりませんでした

ソリューション:

このパッケージをインストールしましたが、問題はなくなりました。

Sudo apt-get install php-mbstring

Sudo apt-get install php-xml

Sudo apt-get install php-mysql

1
sh6210

まず、次のようにphpバージョンを確認します。

php -v

たとえば、バージョン番号を取得した後、7.1を取得し、そのようにインストールします

Sudo apt-get install  php7.1-sqlite     //for laravel testing with sqlite
Sudo apt-get install  php-mysql         //for default mysql
Sudo apt-get install  php7.1-mysql      //for version based mysql 
Sudo apt-get install  php7.1-common     //for other necessary package for php

Apache2を再起動する必要があります

Sudo service Apache2 restart
1
Jignesh Joisar

置き換えられたのは、php.iniファイルの; extension = pdo_mysqlからextension = pdo_mysqlへ。

0
Heatscar_

将来の検索者向け。 FreeBSDでは次を試してください

pkg_info | grep php5-pdo_mysql

代わりに空の行が表示される場合は、次を実行します。

cd /usr/ports/databases/php5-pdo_mysql

そして、インストールを行います

make install clean

次に、Apacheを再起動するだけで完了です。

例えばSudo /usr/local/etc/rc.d/Apache22 restart

0
Aleksey Potapov

このコマンドでインストールしてください

Sudo apt-get install php5-Gd

これは私のために働いた。

0
briankip

私も同じエラーを受け取っていました-> "[PDOException] could not find driver"

Phpがlampp/opt/lampp/bin/phpの代わりに/ usr/bin/phpを指しているので、単純に作成してエイリアスを作成しました。

エイリアスphp = "/ opt/lampp/bin/php"

また、データベースアクセス資格情報が更新されたことを確認するために、.envファイルを更新する必要がありました。

そして、それがうまくいったと思います!

0
lightup

このエラーの適切な解決策を見つけました!データベースがインストールされていないか、このファイルにデフォルトのデータベースがありますconfig/database.phpはこのような他のデータベースに設定されています

'default' => 'sqlite',
'default' => env('DB_CONNECTION', 'sqlite'), //laravel 5.2

デフォルトのインストール先を変更するか、デフォルトとなるデータベースをインストールしてください!この行を次のように変更した後、mysqlとphp artisan migrateをインストールしました。

'default' => 'mysql',
'default' => env('DB_CONNECTION', 'mysql'), //laravel5.2
0
lewis4u

ManjaroのようなArchベースのシステムを使用している場合

ただ使う

Sudo pacman -S php-sqlite

Httpdを再起動します

systemctl restart httpd
0
nayan verma

Laravel 5.xを使用しており、エラーが列の属性を変更しようとする場合、前提条件が欠落しているためにエラーが発生する可能性があります。

これを試して:

 composer require doctrine/dbal

その後、移行を実行してみてください。

ここから: https://laravel.com/docs/master/migrations#modifying-columns

0
Arlyn

私の場合、Apacheで実行されるPHPがCLIで実行されるものと異なることを知りませんでした。 httpd.confでの設定中に、CLIが使用するデフォルトのモジュールではなく、PHPモジュールを指定した場合が該当する可能性があります。

0
Sven P

この投稿を見つけたwindows 10およびWAMPのユーザーには、解決策があります。 このリンクにアクセスしてください 。私にとってはうまくいき、解決策を見つけるのは困難でしたが、将来的には他の人の助けになることを願っています。

0
abel406