工匠移民找不到司机

我正在安装 Laravel。我已经安装了 Xampp,但是当我尝试使用 php artisan migrateI 设置我的数据库时,我得到了错误:

[ Illumination Database QueryException ]无法找到驱动程序(SQL: select * from information _ schema. tables where table _ schema = homestead [ PDOException ]无法找到 司机

config/database.php文件有相关的连接:

'connections' => [


'sqlite' => [
'driver' => 'sqlite',
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
],


'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],


'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
],


'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
],


],

有什么想法吗?

227423 次浏览

在 php.ini 配置文件中,只需取消对扩展名的注释:

;extension=php_pdo_mysql.dll

(您可以在安装堆栈服务器的 php 文件夹中找到 Php.ini文件。)

如果你在 窗户频道,那就改成: extension=php_pdo_mysql.dll

如果你在 Linux频道,那就改成: extension=pdo_mysql.so

然后快速重启服务器。

如果这对您不起作用,您可能需要将 Pdo _ mysql扩展安装到您的 php 库中。

通过以下步骤,我们已经解决了同样的错误。

这种类型的错误发生在 linux 命令中,然后首先检查 php.ini 文件

If your php.ini file exists then in configuration file simply uncomment the extension:


;extension=php_pdo_mysql.dll


Else follow below steps


step1:php -v


step2: Install php mysql extension


php 7.0 sudo apt-get install php7.0-mysql


php 7.1 sudo apt-get install php7.1-mysql


php 7.2 sudo apt-get install php7.2-mysql


php 7.3 sudo apt-get install php7.3-mysql


step3: service apache2 restart


step4: php artisan migrate

我知道这是一个有点晚,但我仍然回答这个问题的任何人仍然经历这个窗口(使用 XAMPP)。

步骤1。验证 PHP 版本中是否存在不匹配。 为此,打开路由/web.php 并创建一个简单的路由来返回 php 信息,如下所示:

Route::get('/', function() {
return response()->json([
'stuff' => phpinfo()
]);
})

phpinfo

and compare this with output from your command line

enter image description here

As we can see, in my case there is a mismatch, this usually happens if you have multiple versions of php installed.

步骤2。将 xampp 使用的 php 版本添加到系统路径中 enter image description here

步骤3. 验证是否在 php.ini 文件中启用了扩展名。 注意。确保您正在编辑 phpinfo ()命令结果中“已加载配置文件”条目下显示的 php.ini 文件。 enter image description here

whilst sometimes you might have multiple php versions, you might also have a held-back version of php-mysql.. do a sudo dpkg -l | grep mysql | grep php and compare what you get from php -v

我是一个 Windows 和 XAMPP 用户。对我有效的方法是在 XAMPP 的 php.iniC:\php\php.iniphp.ini中加入 extension=php_pdo_mysql.dll

在 cmd 中运行这个命令,以了解配置文件的位置

php -i | find /i "Configuration File

转到. env 文件并更改以下内容
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=shreemad
DB_USERNAME=root
DB_PASSWORD=

将 DB _ PASSWORD 字段更改为

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=shreemad
DB_USERNAME=root
DB_PASSWORD=" "

对我来说很有效

注意: 如果 mysql 中的密码为 null

如果您正在与 sqlite 数据库进行匹配:
我不知道文件夹中打开 Php.ini文件,转到:

;extension=pdo_sqlite

只要删除分号,它就会工作。

在 Windows 和 PHP 7.4.5中,转到 PHP.ini 并取消注释这一行

extension=pdo_mysql

如果你使用的是 Linux 系统 请尝试运行 sudo php artisan migrate 对于我来说,有时数据库操作需要在 laravel 中使用 sudo 运行。

如果您已经在 Linux 机器上安装了 phpmysql,那么 php 需要 php-mysql扩展才能与 mysql 通信。因此,请确保您也使用以下方法安装了这个扩展程序:

基于 Redhat 的机器中的 sudo yum install php-mysql

还有

Debian 机器中的 sudo apt-get install php-mysql

确保您已经安装了 Php-mysql,pdo 需要 php-mysql 才能正常运行

sudo apt install php-mysql

在 Ubuntu 或者 windows 中

  • 删除; from; 扩展名 = pdo _ mysql 或扩展名 = php _ pdo _ mysql. dll 并添加扩展名 = pdo _ mysql. so

    重新启动 xampp 或 wampp

  • 安装 sudo apt-get install php-mysql

还有

Php 工匠迁移

对于任何试图在 Docker 映像中启用扩展的人:

RUN docker-php-ext-install pdo pdo_mysql \
&& docker-php-ext-enable pdo_mysql

基于 这个答案

同时也支持 @ Krishna在延期问题上的一些亮点。

php.ini配置文件中,只需取消注释扩展名:

;extension=pdo_mysql

(您可以在安装服务器的 php 文件夹中找到 php.ini 文件。)

把这个给

extension=pdo_mysql

现在您需要配置您的。Env 文件在查找 DB_DATABASE=写在那个数据库名称,你使用比迁移像如果我使用我的数据库和数据库名称是“ abc”比我需要写在那里的 DB_DATABASE=abc和保存。再次运行命令

php artisan migrate

所以跑完之后,你会得到一些味精,比如:

php artisan migrate
Migration table created successfully.

您还需要安装 PHP-MySQL 驱动程序:

sudo apt install php-mysql

我太尴尬了。我知道这对那些使用 XAMPP 的人没有帮助,但我必须分享。我在 Vagrant 中使用运行在 Windows10中的 ScotchBox 虚拟机安装了开箱即用的 Laravel。我正在学习数字海洋教程。这应该能行。

像你一样,我运行 php artisan migrate

could not find driver (SQL: select * from sqlite_master where type = 'table' and name = migrations)

几个小时后,我想

也许我应该试试在流浪汉的壳里面?

我打开 vagrant ssh,再次运行 php artisan migrate。在那里我得到了一个不同的信息:

Could not open input file: artisan

几个小时后,我做对了。

vagrant ssh

cd \var\www\

php artisan migrate

Migration table created successfully

所以,是的。我在错误的外壳 还有错误的文件夹。

如果您已经安装了多个 php 版本,应用了 php.ini 中的所有其他选项,如 UN 注释驱动程序,但是它不能工作,您可能会错过以下步骤

  1. 请从 cmd 检查 php -v

  2. 通过右键单击 PC 和属性转到您的环境变量

  3. 检查你的 php 键的路径,它可能指向旧版本。

同样的问题,但在我运行这行代码之后。

sudo apt install php-mysql

成交。

这个错误对于所有 SQL 驱动程序都是一样的,所以对于使用 MySQL 的 没有用户,请尝试安装 你的 SQL 驱动程序..。

SQL Lite:

sudo apt install php-sqlite3

PostgreSQL:

sudo apt install php-pgsql

通过运行 sudo apt install php-mysql并在 php.ini中启用 extension=pdo_mysql来安装

然后运行 sudo systemctl reload apache2重新加载 Apache

要在服务器中快速找到 php.ini,只需运行以下命令: php -i | grep "Loaded Configuration File"

Laravel 餐厅:

php artisan config:clear


php artisan migrate

对我有效,祝你好运!