Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

could not find driver error when using php artisan migrate

Tags:

php

laravel-5

I started a new blog project to try Laravel. I followed the tutorial from https://laracasts.com/series/laravel-from-scratch-2017/episodes/1?autoplay=true .I changed .env file

DB_DATABASE=homestead 
DB_USERNAME=homestead 
DB_PASSWORD=secret

to

DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=

Then type

php artisan migrate

and get an error

   Illuminate\Database\QueryException  : could not find driver (SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations)

  at /home/morilon/php_proj/blog/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668| 

  Exception trace:

  1   PDOException::("could not find driver")
      /home/morilon/php_proj/blog/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68

  2   PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=blog", "root", "", [])
      /home/morilon/php_proj/blog/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68

  Please use the argument -v to see more details.

What does that mean could not find driver (SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations) ? After installing PHP i reinstalled MySQL with that commands:

pkg --get-selections | grep mysql
sudo apt-get remove --purge [everything that came up]
sudo apt-get autoremove && sudo apt-get autoclean
sudo apt-get install mysql-server

--Update--

After

sudo apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml

error changes

Illuminate\Database\QueryException  : SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations)
like image 744
Loctarogar Avatar asked May 19 '18 16:05

Loctarogar


3 Answers

You also need to install the PHP-MySQL drivers:

sudo apt install php-mysql

like image 70
brombeer Avatar answered Sep 29 '22 22:09

brombeer


I encountered the same problem with SQLite database.

I had to install php-sqlite3 for it to work.

sudo apt-get install php-sqlite3

Then execute your migrate command

php artisan migrate

Hope this helps anyone using sqlite.

like image 28
Kalkulus Avatar answered Sep 29 '22 22:09

Kalkulus


The last error was because I didn't enter password for MySQL user in files config/database.php and .env.

like image 20
Loctarogar Avatar answered Sep 29 '22 20:09

Loctarogar