【问题标题】:mysql server has gone away error during installing migration (laravel)安装迁移期间mysql服务器已消失错误(laravel)
【发布时间】:2016-05-04 08:33:18
【问题描述】:

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

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

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

谁能解释我做错了什么?

【问题讨论】:

    标签: php mysql laravel pdo migrate


    【解决方案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

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

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

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

      php artisan migrate
      

      正如Here解释的那样

      让我们知道这是否有帮助:)。

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 同样的问题。我在 ENV 中为我的数据库连接分配了错误的端口。
        【解决方案4】:

        在我的情况下,问题是我将DB_HOST 更改为localhost,但通过保留default127.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】:

            除了其他答案:

            • 尝试在.envconfig/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=3306DB_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 现在可以正常工作了。

                【讨论】:

                  猜你喜欢
                  • 2012-08-22
                  • 2018-05-25
                  • 2012-06-28
                  • 2011-12-18
                  • 2011-10-12
                  • 2013-04-26
                  相关资源
                  最近更新 更多