我想将MySQL数据库连接到我的Laravel应用程序。
我使用MySQL的PHPMyAdmin管理工具创建了一个,然后我将它添加到.env
中,而database.php
的应用程序文件
我运行了终端命令:php artisan migrate
,它给了我以下错误:
could not find driver (SQL: select * from information_schema.tables where table_schema = pl_project and table_name = migrations and table_type = 'BASE TABLE')
at C:UsersuDocumentspl_project_testpl_project_testvendorlaravelframeworksrcIlluminateDatabaseConnection.php:760
756▕ // If an exception occurs when attempting to run a query, we'll format the error
757▕ // message to include the bindings with SQL, which will make this exception a
758▕ // lot more helpful to the developer instead of just the database's errors.
759▕ catch (Exception $e) {
➜ 760▕ throw new QueryException(
761▕ $query, $this->prepareBindings($bindings), $e
762▕ );
763▕ }
764▕ }
1 C:UsersuDocumentspl_project_testpl_project_testvendorlaravelframeworksrcIlluminateDatabaseConnectorsConnector.php:70
PDOException::("could not find driver")
2 C:UsersuDocumentspl_project_testpl_project_testvendorlaravelframeworksrcIlluminateDatabaseConnectorsConnector.php:70
PDO::__construct()
这是我编辑的.env
摘录:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=pl_project
DB_USERNAME=root
DB_PASSWORD=
这是我编辑的database.php
节选:
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'pl_project'),
'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'),
]) : [],
]
以下是命令的输出:php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
fileinfo
filter
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
Phar
readline
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]
注意事项:
- 我确实将PHP添加到我的env变量以及MySQL。
- 我取消了
php.ini
中的extension=pdo_mysql
注释。
但是这些都没有改变任何东西,我仍然得到相同的错误。
不需要编辑database.php文件,因为它使用。env作为数据库信息。如果这是一个没有.env文件的新项目,请尝试运行php artisan config:clear
您是否尝试在启用扩展后重新启动PC ?如果您正在使用运行您的项目,则使用当你更改ini文件
后,它将不会反映出来。我在几台有数据库的机器上也有一些类似的问题,通过注释'url' =>env('DATABASE_URL'), line in mysql
希望能有所帮助
注释:
我检查了所有php.ini文件,有2个,所以我编辑了第二个一个。重新启动服务器,然后再次尝试迁移,只是为了获得同样的错误. .- OP - https://stackoverflow.com/posts/comments/131493101?noredirect=1
根据我的记忆,默认的XAMPP安装会在xampp/php/
路径下安装一个php.ini
文件。
但是在该路径中有php.ini-development
和php.ini-production
配置文件。您通常需要创建的副本,或者根据您的用例和重命名'副本'到php.ini
这个重命名的文件将被认为是'活动/默认PHP配置文件'
然后打开这个新的重命名的php.ini
文件,取消任何必要的扩展库的注释,保存并重新启动XAMPP web服务器(Apache)。
附录
您可能需要根据您的情况启用/取消注释下面的扩展库。
mysqli
pdo_mysql
pdo_sqlite
附录2 h5> 启用/取消下面一行的注释。将路径更改为XAMPP安装路径。即:extension_dir="C:xamppphpext"
extension_dir="C:xamppphpext"