我正在尝试安装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' => '',
],
],
有什么想法吗?
答案 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机器上安装了php
和mysql
,则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()
]);
})
and compare this with output from your command line
As we can see, in my case there is a mismatch, this usually happens if you have multiple versions of php installed.
第3步。验证是否已在php.ini文件中启用了扩展名。 注意确保正在编辑phpinfo()命令结果中“已加载的配置文件”条目下显示的php.ini文件。
答案 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.dll
和php.ini
的{{1}}中都添加php.ini
。
在您的cmd中运行此命令以了解您的配置文件在哪里
C:\php\php.ini
答案 12 :(得分:0)
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=" "
就我而言,它有效
答案 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迁移