刚刚经历了所有的步骤上列出的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
6条答案
按热度按时间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密码。这是命令。
当您仍然以root用户身份登录时,您需要运行此命令,以允许您的用户执行允许的所需任务
php artisan migrate
不可能发生。前任:CREATE, DROP, ALTER, DELETE
诸如此类。如果这不起作用,您还可以选择您想要允许的命令,而不是授予它们完全访问权限。
希望这有帮助~
ocebsuys2#
服务器已经消失是一个mysql错误,请检查此链接
检查mysql服务是否确实在运行,然后检查您是否拥有正确的凭据
.env
文件关于迁移的“初始错误”,我们需要查看迁移代码中的内容。
编辑:由于迁移是laravel的默认设置,那么问题可能在于laravel和数据库之间的连接。
要确认这一点:
手动创建数据库;
创建一个表并在其中放置一行;
创建返回的路线
DB::statement('select * from tablejustcreated');
向那条路线提出请求,如果它冻结了,砰,那就是连接,很可能,.env
文件凭据(用户名和密码、主机、端口)。rfbsl7qr3#
我也有同样的问题,我用冲水特权来解决。
tzxcd3kk4#
非常感谢@poohbear和其他人帮我把这个修好。
实际上对我有效的是:
…大概是因为新的mysql默认为
caching_sha2_password
php不知道如何处理这个问题。iezvtpos5#
试试这个
php artisan migrate --force
[https://laravel.com/docs/5.6/migrations]这是一个迁移的文档,我认为可能有用mzaanser6#
这是PHP7.2.8中的一个已知错误。降级到php7.2.7,直到修复为止。
当我从php7.2.7升级到php7.2.8时遇到了同样的问题。
看到了吗https://bugs.php.net/bug.php?id=76651