Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel迁移停滞,什么也不做_Php_Mysql_Laravel_Homebrew_Artisan Migrate - Fatal编程技术网

Php Laravel迁移停滞,什么也不做

Php Laravel迁移停滞,什么也不做,php,mysql,laravel,homebrew,artisan-migrate,Php,Mysql,Laravel,Homebrew,Artisan Migrate,只需完成上列出的所有步骤,即可安装、启动并运行MacOS HighSierra。我目前安装了Composer、Homebrew、valet、PHP7.2.8、MySQL版本8.0.11和Laravel 5.6.28。我可以通过执行laravelnewblog命令创建一个新项目,并且没有任何问题。此外,当我进入浏览器时,我可以看到我刚刚创建或正在处理的当前项目。我可以运行“代客泊车列表”命令,因此我知道它正在运行/工作。我还可以创建一个迁移,并通过运行php artisan make:migrat

只需完成上列出的所有步骤,即可安装、启动并运行MacOS HighSierra。我目前安装了Composer、Homebrew、valet、PHP7.2.8、MySQL版本8.0.11和Laravel 5.6.28。我可以通过执行laravelnewblog命令创建一个新项目,并且没有任何问题。此外,当我进入浏览器时,我可以看到我刚刚创建或正在处理的当前项目。我可以运行“代客泊车列表”命令,因此我知道它正在运行/工作。我还可以创建一个迁移,并通过运行php artisan make:migration test_test_test将其显示在我的项目中

我的路径中也有~/.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.
现在我得到了这个错误

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.
异常跟踪:

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

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::_构造:执行缓存时出现意外的服务器响应_sha2 auth:109

服务器已消失是一个MySql错误

检查您的mysql服务是否确实正在运行,然后检查您在.env文件上是否具有正确的凭据

关于迁移的“初始错误”,我们需要查看迁移代码中的内容

编辑:因为迁移是Laravel的默认设置,所以问题可能在于Laravel和数据库之间的连接

要确认这一点:

手动创建数据库; 创建一个表并在其中放置一行; 创建一个返回DB::语句“select*fromTableJustCreated”的路由; 向该路由发出请求,如果它冻结,boom,则是连接,很可能是.env文件凭据用户名和密码、主机、端口。

尝试此php artisan迁移-强制 [
这是一个migrate的文档,我认为可能很有用

这是PHP7.2.8中的一个已知错误。请降级到PHP7.2.7,直到修复为止

当我从PHP7.2.7升级到PHP7.2.8时,我遇到了同样的问题


请参见

我自己也遇到了这个问题,并获得了错误异常消息:PDO::uu构造:执行缓存时意外的服务器响应\u sha2 auth:109

我就是这样修复的:

我以root用户身份登录mysql,如下所示 mysql–uroot–p并输入我的密码

通过键入SELECT User,Host FROM mysql.User,可以获得服务器上的用户列表

确保您看到了试图从.env文件连接到数据库的用户。 您需要更改当前用户以使用mysql最新版本所需的缓存\u sha2\u密码

这是命令

ALTER USER `username`@`localhost` IDENTIFIED WITH caching_sha2_password BY 'password';
在仍然以root用户身份登录时,您需要运行此命令,以允许您的用户执行php artisan迁移所需的任务。例如:创建、删除、更改、删除等

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
如果这不起作用,您还可以选择要允许的命令,而不是完全访问这些命令

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

希望这有帮助~

非常感谢@poohbear和其他人帮助我修复了这个问题

实际上对我有效的是:

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

…大概是因为新的MySQL默认缓存密码,PHP不知道如何处理。

我也有同样的问题,我通过刷新权限来解决。

迁移中有什么内容?只是安装中预先打包的两个迁移。create_users_table.PHP和create_password_resets_table.phpTry增加冗余度,art migrate-verbose和edit输出问题。php-version输出了什么?您运行composer安装时没有错误吗?您的MySQL版本是什么?MySQL-version。所有内容的版本都在上面的问题中。我也添加了MySQL版本。听起来artisan好像有问题。您想要解决第一个问题吗?挂断迁移问题,然后我们需要看到迁移classIm使用两个迁移,这两个迁移是与新安装的laravel一起预打包的。create_users_table.php和create_password_resets_table.php。我没有对它们做任何操作,但我仍然可以发布它们。你在config/app.php中添加了什么吗?我没有在config/app.php文件。尝试将-force添加到您的迁移命令中。这可能与valet有关,到目前为止,您在安装任何东西时是否有任何错误,您是否遵循了laravel页面上的教程?是否降低了级别,并且没有更改
我升级到了7.2.8,得到了和你完全一样的错误信息。我读了PHP bug报告,降级了,它帮我解决了问题。这个网站帮助我理解了这个问题,实际上,我下半年是这样做的。不幸的是,以“我有同样的问题”开始你的答案,现在时态让它听起来像是一个没有答案的问题。建议改成我有同样的问题。。。