尝试迁移 Laravel 数据库时出现错误

Posted

技术标签:

【中文标题】尝试迁移 Laravel 数据库时出现错误【英文标题】:I have an error when trying to migrate Laravel database 【发布时间】:2019-02-14 01:57:41 【问题描述】:

我是 Laravel (v 5.7.2) 的绝对初学者,我面临着第一个真正的障碍。 在 MAMP 上,通过 phpmyadmin 和模型php artisan make:model [modelname] -m 成功创建数据库后,当我尝试迁移它php artisan migrate 时,出现以下错误:

异常跟踪:

1 PDOException::("PDO::__construct(): 服务器请求客户端未知的身份验证方法 [caching_sha2_password]") /Applications/MAMP/htdocs/loginsystemLaravel/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68

2 PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=lsapp", "root", "", []) /Applications/MAMP/htdocs/loginsystemLaravel/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68

我仔细检查了 .envdatabase.php 文件,它们都具有相同的配置。

发生了什么?

【问题讨论】:

可能是因为 laravel 不支持 mysql 版本。您可以更改数据库身份验证方法吗? ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''; MySQL 在 MAMP 中使用什么端口? 看起来对问题投反对票是这里的常态......谢谢你们的回答。我使用的是默认端口 3306,连接类型是套接字,虽然我不确定是否必须在那里写一些东西。我也尝试了 HostName localhost 和 127.0.0.1 都没有成功... 【参考方案1】:

巧合之下,终于自己解决了。我意识到我安装了两个版本的 mysql,mysql8 和 mysql57。第一个默认支持 laravel 尚不支持的 cachin sha2。可能的解决方案:

1)更改默认mysql登录方式。 2) 使用 5.7。 3) 记得在 .env 和 config/database.php 文件中设置相同的参数。

希望这对其他人有帮助

【讨论】:

【参考方案2】:

只需在 .env 文件中查看 DB_Name 是什么 转到 phpmyadmin 并在我的情况下创建一个新数据库(“Laravel”)

【讨论】:

以上是关于尝试迁移 Laravel 数据库时出现错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel 迁移创建外键时出现 MySQL 错误

使用Laravel迁移创建外键时出现MySQL错误

(Laravel) 运行迁移时出现不正确的日期时间格式错误

Laravel:尝试获取 PDF 时出现 DOMPDF 错误

Laravel,尝试通过 AJAX 向控制器传递数据时出现不匹配的令牌错误

为啥在 Laravel 中保存数据时出现方法不允许错误?