mysql 安装迁移期间服务器已消失错误 (laravel)

mysql server has gone away error during installing migration (laravel)

所以我在我的 laravel 文件夹上使用我的 cmd 并且我尝试这样做 (php artisan migrate:install)。出现 2 个错误。

  1. [PDOException] SQLSTATE[HY000] [2006] MySQL server has gone away

  2. [ErrorException] PDO::__construct(): MySQL server has gone away

谁能解释一下我做错了什么?

您在查询期间丢失了与服务器的 SQL 连接。这是暂时的问题。这是因为 max_allowed_packet.

的默认设置非常低

my.cnf(在 [mysqld] 下)中的 max_allowed_packet 提高到 8 或 16M 通常可以解决问题。

[mysqld]
max_allowed_packet=16M

注意: 这可以在您的服务器上设置,因为它是 运行。完成后,您需要 restart MySQL 服务。

使用:set global max_allowed_packet=104857600。我的值将其设置为 100MB。

这不是 Laravel 问题,而是一般 MySQL 问题。也许服务器不是 运行ning。您确定在后台 运行ning MySQL 吗?

检查此 link:MySQL Gone Away

在您的系统中执行以下检查:

  1. 数据库引擎是 运行ning
  2. 您已经创建了数据库
  3. 您已创建用户并授予数据库权限
  4. 您已经在 Laravel 的 .env 文件中设置了用户和数据库。

在此之后,再次尝试 运行 迁移命令,即:

php artisan migrate

正如解释的那样Here

如果有帮助请告诉我们 :)。

对我来说,问题似乎是我为 Laravel 项目的 .env 文件分配了错误的端口。后来,当我将它与my.cnf文件匹配时,它起作用了。

我正在使用 Ubuntu 16.04 + nginx + MariaDB + Laravel 项目。

在我的例子中,问题是我将 DB_HOST 更改为 localhost,但是通过保持它 default127.0.0.1 和默认端口 [=15] 来修复它=]. 这是 xampp:

中 localhost 的配置
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=hmb
DB_USERNAME=root
DB_PASSWORD=

尽管我使用 localhost:8081/phpmyadmin 访问我的 db

如果有人正在寻找解决方案,请尝试清理所有缓存,您可以手动删除 bootstrap/cache 文件夹中的缓存文件。

另外还有其他答案:

  • 尝试在 .envconfig/database.php 中将 localhost 域更改为 127.0.0.1
  • 此外,如果您使用的是 git,请检查 git status 并查看是否更改了不需要的文件。

因为在我的例子中,文件 config/database.php 中 mysql 连接配置的 options 数组不知何故是空白数组。我检查了 git checkout config/database.php 文件,它开始工作正常。

我遇到了同样的问题。解决方法是把3306或者80中的mysql端口号删掉,留空 在文件中

.env DB_PORT=3306DB_PORT= 以及

database.php 'port' => env('DB_PORT', '3306'),'port' => env('DB_PORT', ''),

我的解决方案是修复 DB_HOST 参数。事实上,我使用 PHPStorm 并在 .env 中设置了 public url,以便使用 IDE 中的数据库工具,而这个损坏的 Laravel。 所以我将 DB_HOST 更改为 localhost 并且 Laravel 现在可以正常工作了。