php artisan migrate 卡在命令的开头

php artisan migrate stuck at the beginning of the command

[MacOS 10.14.0] 当我创建一个新项目时 (Laravel new blog) 然后在MySQL中创建一个table(create database blog) 然后用正确的用户名、密码和数据库更新我的 .env 文件。

创建项目后,我会运行php artisan migrate 但是我的终端仍然是空的,我可以在我的终端中输入。但它不会做任何事情。

我的 storage/logs 文件夹是空的。

我的 database/migrations 文件夹中有 2 个默认迁移文件。

php migrate list 有效

它可以是什么?

您是否将 laravel 项目从 .env 文件连接到数据库?

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=DATABASE_NAME
DB_USERNAME=DATABASE_USERNAME
DB_PASSWORD=DATABASE_PASSWORD

经过反复试验,我发现我的 MySQL 服务器有问题。我用 brew 重新安装了 MySQL。最新版本8和最新版本5.7.*。由于以下冲突,两者均无效:Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found.

所以一直以来,我的 .env 文件中的所有内容都是正确的,但我的 MySQL 被破坏了。我还通过尝试连接应用 'Sequel Pro' 确认了这一点。和我想的一样,它给了我同样的冲突。

我是如何解决这个问题的:

  • 通过 brew 删除所有 MySQL/MariaDB 包(如果你像我一样用 brew 安装它们)
  • 从官方 mysql.com 网站安装 MySQL Community Server 5.7.*(您可以 google 该文件)。
  • 将 MySQL 添加到您的路径 export PATH=$PATH:/usr/local/mysql/bin
  • 转到:System Preferences -> MySQL -> press 'Start MySQL Server'
  • 用新密码更改您的临时密码mysqladmin -uroot -p[temporary password] password '[new password]'

祝你好运!


2019 年 2 月 26 日编辑:
我发现更改随机生成的密码有问题。我使用的是 MySQL Community Server 5.7.25,随机生成的密码是:_>9mxWc9a!0.。当我尝试使用上面的命令更改默认密码时。我收到以下错误:
-bash: !0: event not found
如果您遇到与我相同或类似的错误,请尝试以下操作:

  • 在您的终端中输入以下命令:mysqladmin -uroot -p password '[new password]'
  • 当您按回车键时,它会要求您输入密码。现在输入 MySql 社区服务器在安装时在提示中给你的随机生成的密码。

现在应该可以使用了!

对我来说,重启本地数据库很有帮助。

Laravel 5.8 与 SQLite。

我的问题不是 larvel,而是 sqlite 的数据库浏览器。我必须打开和关闭程序才能完成迁移过程。

如果您正在使用 Docker 并在主机上遇到此错误,请尝试 运行 在容器 cli 中进行迁移。