安装迁移期间mysql服务器已消失错误(laravel)
Posted
技术标签:
【中文标题】安装迁移期间mysql服务器已消失错误(laravel)【英文标题】:mysql server has gone away error during installing migration (laravel) 【发布时间】:2016-05-04 08:33:18 【问题描述】:所以我在我的 laravel 文件夹中使用我的 cmd,我尝试这样做(php artisan migrate:install)。出现了 2 个错误。
[PDOException] SQLSTATE[HY000] [2006] mysql 服务器已消失
[ErrorException] PDO::__construct(): MySQL 服务器已消失
谁能解释我做错了什么?
【问题讨论】:
【参考方案1】:您在查询期间丢失了与服务器的 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。
【讨论】:
【参考方案2】:这不是 Laravel 问题,而是一般 MySQL 问题。也许服务器没有运行。你确定你在后台运行 MySQL 吗?
查看此链接:MySQL Gone Away
在您的系统中进行以下检查:
-
数据库引擎正在运行
您已创建数据库
您已创建用户并授予数据库权限
您已经在 Laravel 的 .env 文件中设置了用户和数据库。
之后,再次尝试运行迁移命令,即:
php artisan migrate
正如Here解释的那样
让我们知道这是否有帮助:)。
【讨论】:
【参考方案3】:对我来说,问题似乎是我为我的 Laravel 项目的 .env
文件分配了错误的端口。后来,当我将它与my.cnf
文件匹配时,它起作用了。
我正在使用 Ubuntu 16.04 + nginx + MariaDB + Laravel 项目。
【讨论】:
同样的问题。我在 ENV 中为我的数据库连接分配了错误的端口。【参考方案4】:在我的情况下,问题是我将DB_HOST
更改为localhost
,但通过保留default
即127.0.0.1
并将端口默认为3306
已修复。
这是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
【讨论】:
【参考方案5】:如果有人正在寻找解决方案,请尝试清理您拥有的所有缓存,您可以手动删除 bootstrap/cache 文件夹中的缓存文件。
【讨论】:
【参考方案6】:除了其他答案:
尝试在.env
和config/database.php
中将localhost
域更改为127.0.0.1
。
此外,如果您使用的是git
,请检查git status
并查看是否更改了任何不需要的文件。
因为在我的情况下,文件config/database.php
中用于mysql 连接配置的options
数组不知何故是空白数组。我检查了git checkout config/database.php
文件,它开始正常工作。
【讨论】:
【参考方案7】:我遇到了同样的问题。解决办法是把mysql端口号从3306或者80删除,留空 在文件中
.env DB_PORT=3306
到 DB_PORT=
和上
database.php 'port' => env('DB_PORT', '3306'),
到 'port' => env('DB_PORT', ''),
【讨论】:
【参考方案8】:我的解决方案是修复 DB_HOST 参数。实际上,我使用 PHPStorm 并在 .env 中设置了公共 url,以便使用 IDE 中的 DB 工具和这个损坏的 Laravel。 所以我将 DB_HOST 更改为 localhost,Laravel 现在可以正常工作了。
【讨论】:
以上是关于安装迁移期间mysql服务器已消失错误(laravel)的主要内容,如果未能解决你的问题,请参考以下文章