微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Laravel Migration失速并且什么都不做

刚刚完成了Laravel site上列出的所有步骤,安装并运行MacOS HighSierra.我目前安装了Composer,Homebrew,valet,PHP 7.2.8,MysqL 8.0.11和Laravel 5.6.28.我可以通过执行Laravel新博客命令来创建一个新项目,而不会有任何问题.此外,当我访问我的浏览器时,我可以看到我刚刚创建或正在处理的当前项目.我可以运行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的数据库,甚至手动添加表测试以确保数据库正在运行/运行.

更新

继续前进并卸载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.

异常跟踪:

创建了一个路由器和视图,连接到我创建的表,以查看是否能够访问数据库变量并将其打印出来.回来后我得到了这个错误.

异常消息:PDO :: __ construct():执行caching_sha2 auth时出现意外的服务器:109

解决方法:

我自己有这个问题,并得到错误异常消息:PDO :: __ construct():执行caching_sha2 auth时出现意外的服务器:109

这是我修复它的方式:

我像root用户一样登录MysqL
MysqL -uroot -p并输入了我的密码

您可以通过键入此SELECT用户,Host FROM MysqL.user来获取服务器上的用户列表;

确保从.env文件中看到您尝试连接到数据库用户.
您需要更改当前用户以使用MysqL的持续版本中所需的caching_sha2_password.

这是命令.

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

虽然仍以root用户身份登录,但您需要运行此命令以允许您的用户执行允许PHP artisan迁移发生的所需任务.例如:CREATE,DROP,ALTER,DELETE等.

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

如果这不起作用,您还可以选择要允许的命令,而不是为其提供完全访问权限.

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

希望这有助于〜

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐