尝试迁移 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
我仔细检查了 .env 和 database.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:尝试获取 PDF 时出现 DOMPDF 错误