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

问题描述 投票:0回答:10

所以我在 laravel 文件夹上使用 cmd,并尝试执行(php artisan migrate:install)。出现 2 个错误。

  1. [PDOException] SQLSTATE[HY000] [2006] MySQL 服务器已经消失

  2. [ErrorException] PDO::__construct(): MySQL 服务器已经消失

任何人都可以解释一下我做错了什么吗?

php mysql laravel pdo migrate
10个回答
9
投票

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

max_allowed_packet
的默认设置非常低。

max_allowed_packet
(在[mysqld]下)中的
my.cnf
提高到8或16M通常可以修复它。

[mysqld]
max_allowed_packet=16M

注意: 这可以在服务器运行时进行设置。完成后,您需要

restart
MySQL 服务。

使用:

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


7
投票

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

检查此链接:MySQL 消失了

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

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

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

php artisan migrate

正如所解释的这里

请告诉我们这是否有帮助:)。


2
投票

对我来说,问题似乎是我为 Laravel 项目的

.env
文件分配了错误的端口。后来我把它和
my.cnf
文件匹配起来,就成功了。

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


2
投票

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

.env

DB_PORT=3306
DB_PORT=
以及继续

database.php

'port' => env('DB_PORT', '3306'),
'port' => env('DB_PORT', ''),


1
投票

就我而言,问题是我将

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


1
投票

除了其他答案:

  • 尝试将
    localhost
    127.0.0.1
    中的
    .env
    域更改为
    config/database.php
  • 另外,如果您正在使用
    git
    ,请检查
    git status
    并查看是否有任何不需要的文件已被更改。

因为在我的例子中,文件

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


0
投票

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


0
投票

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


0
投票

我在运行大量 Laravel 单元测试时在 XAMPP 开发服务器上遇到了这个问题。 XAMPP MySQL 的配置位于

C:\XAMPP\mysql\bin\my.ini
。打开该文件,查找
max_allowed_packet
选项(在
[mysqld]
标题下)。默认情况下,此值设置为 1 MB(更准确地说可能是 1 MB)。

只需将其更改为足够大的值即可防止您再次遇到此问题:

[mysqld]
max_allowed_packet=32M

然后从 XAMPP 控制面板重新启动 MySQL 服务以使更改生效。


0
投票

经过几个小时的调试,我发现为

MYSQL_ATTR_SSL_CA
提供无效路径会产生

SQLSTATE[HY000] [2006] MySQL 服务器已经消失

© www.soinside.com 2019 - 2024. All rights reserved.