laravel迁移停滞,什么都不做

7bsow1i6  于 2021-06-23  发布在  Mysql
关注(0)|答案(6)|浏览(395)

刚刚经历了所有的步骤上列出的laravel网站安装,并开始运行macos highsierra。我目前已经安装了composer、homebrew、valet、PHP7.2.8、mysql版本8.0.11和laravel 5.6.28。我可以通过执行 Laravel new blog 没有任何问题。当我进入浏览器时,我可以看到我刚刚创建或正在处理的当前项目。我能跑 valet list 所以我知道它在运行。我还可以通过运行 php artisan make:migration test_test_test .
我的 PATH 也有 ~/.composer/vendor/bin 也在里面。
我的.env文件看起来像

APP_NAME=Laravel
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog        
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1 
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1

MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

我负责 php artisan migrate -vvv 命令运行并暂停/挂起,没有输出。我必须用ctl-c来摆脱它。试过了 -v /-vv 我也做了同样的事。
我创建了一个名为 blog 甚至加一张table test 手动以确保数据库正在工作/运行。
更新
继续卸载mysql并重新安装。我能够运行php artisan migrate-v命令,并且得到了这个错误。
现在我得到了这个错误。

MacBook-Pro:anything computername$ php artisan migrate -v

PDOException  : SQLSTATE[HY000] [2006] MySQL server has gone away

at /Users/computername/Sites/anything/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68
64|         if (class_exists(PDOConnection::class) && ! $this->isPersistentConnection($options)) {
65|             return new PDOConnection($dsn, $username, $password, $options);
66|         }
67| 
> 68|         return new PDO($dsn, $username, $password, $options);
69|     }
70| 
71|     /**
72|      * Determine if the connection is persistent.

异常跟踪:
创建了一个路由器和视图,它连接到我创建的表,以查看是否能够访问数据库变量并将它们打印出来。作为回报,我得到了这个错误。 Exception message: PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109

3phpmpom

3phpmpom1#

我自己也遇到了这个问题,并得到了错误 Exception message: PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109 我就是这样修好的:
我像这样以root用户身份登录mysql mysql –uroot –p 输入了我的密码
您可以通过键入以下命令获得服务器上的用户列表 SELECT User, Host FROM mysql.user; 确保您看到您正试图从.env文件连接到数据库的用户。您需要更改当前用户以使用mysql最新版本所需的缓存sha2密码。
这是命令。

ALTER USER `username`@`localhost` IDENTIFIED WITH caching_sha2_password BY 'password';

当您仍然以root用户身份登录时,您需要运行此命令,以允许您的用户执行允许的所需任务 php artisan migrate 不可能发生。前任: CREATE, DROP, ALTER, DELETE 诸如此类。

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

如果这不起作用,您还可以选择您想要允许的命令,而不是授予它们完全访问权限。

GRANT SELECT, INSERT ON *.* TO 'someuser'@'somehost';

希望这有帮助~

ocebsuys

ocebsuys2#

服务器已经消失是一个mysql错误,请检查此链接
检查mysql服务是否确实在运行,然后检查您是否拥有正确的凭据 .env 文件
关于迁移的“初始错误”,我们需要查看迁移代码中的内容。
编辑:由于迁移是laravel的默认设置,那么问题可能在于laravel和数据库之间的连接。
要确认这一点:
手动创建数据库;
创建一个表并在其中放置一行;
创建返回的路线 DB::statement('select * from tablejustcreated'); 向那条路线提出请求,如果它冻结了,砰,那就是连接,很可能, .env 文件凭据(用户名和密码、主机、端口)。

rfbsl7qr

rfbsl7qr3#

我也有同样的问题,我用冲水特权来解决。

tzxcd3kk

tzxcd3kk4#

非常感谢@poohbear和其他人帮我把这个修好。
实际上对我有效的是:

ALTER USER 'myusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword';

…大概是因为新的mysql默认为 caching_sha2_password php不知道如何处理这个问题。

iezvtpos

iezvtpos5#

试试这个 php artisan migrate --force [https://laravel.com/docs/5.6/migrations]这是一个迁移的文档,我认为可能有用

mzaanser

mzaanser6#

这是PHP7.2.8中的一个已知错误。降级到php7.2.7,直到修复为止。
当我从php7.2.7升级到php7.2.8时遇到了同样的问题。
看到了吗https://bugs.php.net/bug.php?id=76651

相关问题