Illuminate Database QueryException Could not find driver

Posted on

Could Not Find Driver Php Mysql

php artisan migrate Illuminate\Database\ QueryException Could not find driver – One of the excellent features of Laravel is the presence of a tool called Artisan. With Artisan , capabilities to create a database via terminal.

When this article was written I encountered an error when I wanted to make a database migration. The error  is:

> php artisan migrate

   Illuminate\Database\QueryException 

  could not find driver (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:692
    688▕         // If an exception occurs when attempting to run a query, we'll format the error
    689▕         // message to include the bindings with SQL, which will make this exception a
    690▕         // lot more helpful to the developer instead of just the database's errors.
    691▕         catch (Exception $e) {
  ➜ 692▕             throw new QueryException(
    693▕                 $query, $this->prepareBindings($bindings), $e
    694▕             );
    695▕         }
    696▕     }

      +41 vendor frames 
  42  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()

Before proceeding to the next, I want to convey that I am currently using a Linux-based operating system Ubuntu.

Error could not find driver (SQL: SHOW FULL TABLES WHERE table_type = ‘BASE TABLE’)

I’ve fixed this error and I’m telling you about this. The trick is to install php-mysql. Open a terminal, you can use default terminal from Ubuntu/Linux or the terminal in Microsoft Visual Studio.

Use the following command:

sudo apt install php-mysql

Wait for the installation to complete. For example the following:

neon@pop-os:~$ sudo apt install php-mysql 
[sudo] password for neon: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  php7.4-mysql
The following NEW packages will be installed:
  php-mysql php7.4-mysql
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 123 kB of archives.
After this operation, 487 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://us.archive.ubuntu.com/ubuntu hirsute-security/main amd64 php7.4-mysql amd64 7.4.16-1ubuntu2.1 [121 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu hirsute/main amd64 php-mysql all 2:7.4+76ubuntu1 [2,008 B]
Fetched 123 kB in 2s (49.5 kB/s)      
Selecting previously unselected package php7.
4-mysql.
(Reading database ... 300820 files and direct
ories currently installed.)
Preparing to unpack .../php7.4-mysql_7.4.16-1
ubuntu2.1_amd64.deb ...
Unpacking php7.4-mysql (7.4.16-1ubuntu2.1) ..
.
Selecting previously unselected package php-m
ysql.
Preparing to unpack .../php-mysql_2%3a7.4+76u
buntu1_all.deb ...
Unpacking php-mysql (2:7.4+76ubuntu1) ...
Setting up php7.4-mysql (7.4.16-1ubuntu2.1) .
..

Creating config file /etc/php/7.4/mods-availa
ble/mysqlnd.ini with new version

Creating config file /etc/php/7.4/mods-availa
ble/mysqli.ini with new version

Creating config file /etc/php/7.4/mods-availa
ble/pdo_mysql.ini with new version
Setting up php-mysql (2:7.4+76ubuntu1) ...
Processing triggers for php7.4-cli (7.4.16-1u
buntu2.1) ...

After that, please do the migration command again in the terminal. For example I’m re-migrating using terminal:

> php artisan migrate
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (85.46ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (73.72ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (78.33ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated:  2019_12_14_000001_create_personal_access_tokens_table (207.28ms)

Now Laravel has been able to migrate. Hope this QueryException Could not find is useful.