mysql 安装迁移期间服务器已消失错误 (laravel)
mysql server has gone away error during installing migration (laravel)
所以我在我的 laravel 文件夹上使用我的 cmd 并且我尝试这样做 (php artisan migrate:install)。出现 2 个错误。
[PDOException] SQLSTATE[HY000] [2006] MySQL server has gone away
[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
在您的系统中执行以下检查:
- 数据库引擎是 运行ning
- 您已经创建了数据库
- 您已创建用户并授予数据库权限
- 您已经在 Laravel 的 .env 文件中设置了用户和数据库。
在此之后,再次尝试 运行 迁移命令,即:
php artisan migrate
正如解释的那样Here
如果有帮助请告诉我们 :)。
对我来说,问题似乎是我为 Laravel 项目的 .env
文件分配了错误的端口。后来,当我将它与my.cnf
文件匹配时,它起作用了。
我正在使用 Ubuntu 16.04 + nginx + MariaDB + Laravel 项目。
在我的例子中,问题是我将 DB_HOST
更改为 localhost
,但是通过保持它 default
即 127.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 文件夹中的缓存文件。
另外还有其他答案:
- 尝试在
.env
和 config/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=3306
至 DB_PORT=
以及
database.php 'port' => env('DB_PORT', '3306'),
至 'port' => env('DB_PORT', ''),
我的解决方案是修复 DB_HOST 参数。事实上,我使用 PHPStorm 并在 .env 中设置了 public url,以便使用 IDE 中的数据库工具,而这个损坏的 Laravel。
所以我将 DB_HOST 更改为 localhost 并且 Laravel 现在可以正常工作了。
所以我在我的 laravel 文件夹上使用我的 cmd 并且我尝试这样做 (php artisan migrate:install)。出现 2 个错误。
[PDOException] SQLSTATE[HY000] [2006] MySQL server has gone away
[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
在您的系统中执行以下检查:
- 数据库引擎是 运行ning
- 您已经创建了数据库
- 您已创建用户并授予数据库权限
- 您已经在 Laravel 的 .env 文件中设置了用户和数据库。
在此之后,再次尝试 运行 迁移命令,即:
php artisan migrate
正如解释的那样Here
如果有帮助请告诉我们 :)。
对我来说,问题似乎是我为 Laravel 项目的 .env
文件分配了错误的端口。后来,当我将它与my.cnf
文件匹配时,它起作用了。
我正在使用 Ubuntu 16.04 + nginx + MariaDB + Laravel 项目。
在我的例子中,问题是我将 DB_HOST
更改为 localhost
,但是通过保持它 default
即 127.0.0.1
和默认端口 [=15] 来修复它=].
这是 xampp:
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 文件夹中的缓存文件。
另外还有其他答案:
- 尝试在
.env
和config/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=3306
至 DB_PORT=
以及
database.php 'port' => env('DB_PORT', '3306'),
至 'port' => env('DB_PORT', ''),
我的解决方案是修复 DB_HOST 参数。事实上,我使用 PHPStorm 并在 .env 中设置了 public url,以便使用 IDE 中的数据库工具,而这个损坏的 Laravel。 所以我将 DB_HOST 更改为 localhost 并且 Laravel 现在可以正常工作了。