工匠迁移找不到司机

时间:2017-10-14 13:56:52

标签: php laravel

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

[照亮\数据库\ QueryException]   找不到驱动程序(SQL:select * from information_schema.tables where table_schema = homestead和table_name =    迁移)   [PDOException]   找不到驱动程序

我的config.database文件具有相关的连接:

'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' => '',
    ],

],

有什么想法吗?

15 个答案:

答案 0 :(得分:11)

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

;extension=php_pdo_mysql.dll

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

如果您使用 Windows ,请将其设为:extension=php_pdo_mysql.dll

如果您使用 Linux ,请执行以下操作:extension=pdo_mysql.so

快速重启服务器。

如果这对您不起作用,您可能需要在php库中安装 pdo_mysql 扩展名。

答案 1 :(得分:11)

如果您在Linux机器上安装了phpmysql,则php需要扩展php-mysql才能与mysql通信。因此请确保您还使用以下方式安装了该扩展:

sudo yum install php-mysql在基于Redhat的计算机中。

sudo apt-get install php-mysql在Debian机器上。

答案 2 :(得分:6)

我们按照以下步骤解决了相同的错误。

发生此类错误的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: sudo apt-get install php7.0-mysql

step3: service apache2 restart

step4: php artisan migrate

答案 3 :(得分:4)

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

extension=pdo_mysql

答案 4 :(得分:2)

我知道这有点晚了,尽管如此,我还是为仍然在Windows上遇到此问题的任何人(使用XAMPP)回答这个问题。

步骤1.确认您的PHP版本不匹配。         为此,请打开routes / 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

答案 5 :(得分:2)

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

sudo apt install php-mysql

答案 6 :(得分:1)

如果要与sqlite数据库匹配:
在您的 php 文件夹中,打开 php.ini 文件,转到:

;extension=pdo_sqlite

只需删除分号即可。

答案 7 :(得分:1)

确保已安装 php-mysql ,pdo需要php-mysql才能正常运行。如果没有,您只需输入

sudo apt install php-mysql

答案 8 :(得分:1)

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

framed_color = np.zeros(np.add(myRGB.shape, tuple([20,20,0])))
framed_color[10:myRGB.shape[0]+10,10:myRGB.shape[1]+10] = myRGB
plt.axis('off')
plt.imshow(framed_color)

基于this answer

还支持 @Krishna 阐明扩展问题。

答案 9 :(得分:1)

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

;extension=pdo_mysql

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

做到这一点

extension=pdo_mysql

现在您需要在 find DB_DATABASE= 中配置您的 .env 文件,写入您使用的数据库名称而不是迁移,就像我使用我的数据库并且数据库名称是“abc”而不是我需要在那里写{{ 1}} 并保存该 .env 文件并再次运行命令

DB_DATABASE=abc

所以在运行之后你会得到一些像这样的味精:

php artisan migrate

答案 10 :(得分:0)

有时您可能有多个php版本,也可能有一个保留版本的php-mysql。.做sudo dpkg -l | grep mysql | grep php并比较从php -v

中得到的结果

答案 11 :(得分:0)

我是Windows和XAMPP用户。对我有用的是在XAMPP的extension=php_pdo_mysql.dllphp.ini的{​​{1}}中都添加php.ini

在您的cmd中运行此命令以了解您的配置文件在哪里

C:\php\php.ini

答案 12 :(得分:0)

转到.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中的密码为空

答案 13 :(得分:0)

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

答案 14 :(得分:-1)

在Ubuntu或Windows中

  • 删除;来自; extension = pdo_mysql或extension = php_pdo_mysql.dll 并添加extension = pdo_mysql.so

    重新启动xampp或wampp

  • 安装sudo apt-get安装php-mysql

php artisan迁移