Laravel 迁移找不到驱动程序
Laravel migration could not find driver
当我尝试 php artisan migrate
时出现此错误
Illuminate\Database\QueryException
could not find driver (SQL: select * from information_schema.tables where table_schema = lsapp and table_name = migrations and table_type = 'BASE TABLE')
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671
667| // If an exception occurs when attempting to run a query, we'll format the error
668| // message to include the bindings with SQL, which will make this exception a
669| // lot more helpful to the developer instead of just the database's errors.
670| catch (Exception $e) {
> 671| throw new QueryException(
672| $query, $this->prepareBindings($bindings), $e
673| );
674| }
675|
+34 vendor frames
35 artisan:37
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
我已经在 phpmyadmin 上创建了我的数据库。这是我的 .env 文件的配置
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=lsapp
DB_USERNAME=root
DB_PASSWORD=
这里是 mysql 在我的 config/database.php
中的配置
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'lsapp'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
]
帮我解决那个问题
您可以检查 pdo_mysql
扩展是否在 php.ini
文件中激活。
在您的 php.ini 配置文件中取消注释扩展名,删除 ;
:
extension=php_pdo_mysql.dll
如果您在 Linux 上:
extension=pdo_mysql.so
然后重启服务器。
如果这对您不起作用,您可能需要将 pdo_mysql 扩展安装到您的 php 库中。
可能是您使用了两个或更多版本的php。所以你最好这样做:
sudo apt install php-mysql
这样您就可以确保 pdo_mysql
扩展程序安装在每个版本上。
之后重启 apache2:sudo systemctl restart apache2
.
我在这个设置中遇到了同样的问题:Laravel、composer、nginx、mariadb 和 php8 on Rocky Linux 8. 当 运行 php artisan migrate
,我得到了 mysql 找不到驱动程序的错误。我安装了 php-mysql
然后一切正常。
sudo dnf install php-mysql -y
或
sudo yum install php-mysql y
然后
sudo systemctl restart php-fpm
祝你好运,希望这对你有所帮助。
失败
工作中
我能够通过执行以下命令解决它:
sudo apt-get install -y php7.4-mysql
当我尝试 php artisan migrate
Illuminate\Database\QueryException
could not find driver (SQL: select * from information_schema.tables where table_schema = lsapp and table_name = migrations and table_type = 'BASE TABLE')
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671
667| // If an exception occurs when attempting to run a query, we'll format the error
668| // message to include the bindings with SQL, which will make this exception a
669| // lot more helpful to the developer instead of just the database's errors.
670| catch (Exception $e) {
> 671| throw new QueryException(
672| $query, $this->prepareBindings($bindings), $e
673| );
674| }
675|
+34 vendor frames
35 artisan:37
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
我已经在 phpmyadmin 上创建了我的数据库。这是我的 .env 文件的配置
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=lsapp
DB_USERNAME=root
DB_PASSWORD=
这里是 mysql 在我的 config/database.php
中的配置'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'lsapp'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
]
帮我解决那个问题
您可以检查 pdo_mysql
扩展是否在 php.ini
文件中激活。
在您的 php.ini 配置文件中取消注释扩展名,删除 ;
:
extension=php_pdo_mysql.dll
如果您在 Linux 上:
extension=pdo_mysql.so
然后重启服务器。
如果这对您不起作用,您可能需要将 pdo_mysql 扩展安装到您的 php 库中。
可能是您使用了两个或更多版本的php。所以你最好这样做:
sudo apt install php-mysql
这样您就可以确保 pdo_mysql
扩展程序安装在每个版本上。
之后重启 apache2:sudo systemctl restart apache2
.
我在这个设置中遇到了同样的问题:Laravel、composer、nginx、mariadb 和 php8 on Rocky Linux 8. 当 运行 php artisan migrate
,我得到了 mysql 找不到驱动程序的错误。我安装了 php-mysql
然后一切正常。
sudo dnf install php-mysql -y
或
sudo yum install php-mysql y
然后
sudo systemctl restart php-fpm
祝你好运,希望这对你有所帮助。
失败
工作中
我能够通过执行以下命令解决它:
sudo apt-get install -y php7.4-mysql