PHP工匠迁移异常

Posted

技术标签:

【中文标题】PHP工匠迁移异常【英文标题】:PHP artisan migrate exception 【发布时间】:2019-11-16 11:45:24 【问题描述】:

我是 php laravel 的新手,遇到了一个我无法解决的问题。请建议我。当我运行“php artisan migrate”时,我得到一个 QueryException 说:

找不到驱动程序(SQL:PRAGMA foreign_keys = ON;)

我尝试将extension=php_pdo_mysql.so 添加到我的 php.ini 中,因为它不存在但它不起作用

这是我收到的错误消息: QueryException

非常感谢

【问题讨论】:

你在config/database.php中配置好你的数据库了吗? 我没有更改文件database.php,我保持原样。 看起来它正在尝试连接到 SQLite 数据库。 config/database.php 中的默认连接字符串是什么? 它是mysql=> 'default' => env('DB_CONNECTION', 'mysql'),我尝试将其更改为sqlite,但没有成功。 【参考方案1】:
    确保您已安装 php7.0-mysql。 取消注释扩展=php_pdo_mysql.so;

    确保您已正确配置数据库环境变量以连接到您的 mysql 数据库。在你的 .env 文件中有这样的东西。

    DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=database_name DB_USERNAME=database_username DB_PASSWORD=database_password

【讨论】:

感谢您的回复,我做了您提到的 3 处更改,但我仍然有同样的错误。我要检查其他内容吗? 你能告诉我你在 .env 文件中的数据库环境变量吗?另外,您可以从 config/database.php 添加您的 mysql 详细信息吗? 这些是 .env 中的数据库环境变量: >DB_CONNECTION=mysql >DB_HOST=127.0.0.1 >DB_PORT=3306 >DB_DATABASE=database_name >DB_USERNAME=database_username >DB_PASSWORD=database_password 并且 config/database.php 已经包含 mysql 为: 'mysql' => [ 'driver' => 'mysql', 'url' => env('DATABASE_URL'), 'host' = > env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), '数据库' => env('DB_DATABASE', 'forge'), '用户名' = > env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), ]) : [], ], 当我运行您提到的命令时,我收到此错误:错误 1045 (28000): Access denied for user 'database_username'@'localhost' (using password: YES)

以上是关于PHP工匠迁移异常的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 工匠迁移失败

Laravel Migrations 出现异常错误

Php工匠迁移失败Laravel [重复]

PHP工匠迁移不会迁移所有表[重复]

PHP工匠迁移命令给出错误?

laravel php工匠错误