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 中进行迁移。
[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 中进行迁移。