【问题标题】:Laravel 8: ErrorException::("PDO::exec(): MySQL server has gone away") when calling DB::unprepared($sql)Laravel 8:调用 DB::unprepared($sql) 时出现 ErrorException::("PDO::exec(): MySQL server has gone away")
【发布时间】:2022-01-11 13:26:29
【问题描述】:

我运行一个 laravel 播种机:

public function run()
    {
        $path = public_path('sql/cities.sql');
        $sql = file_get_contents($path);
        DB::unprepared($sql);    }
}

插入的 sql 文件非常大,它存储在 public/sql 中,它与来自 github 的这个文件相同(仅带有插入语句):Cities SQL File

当我运行播种机时,它会抛出这个错误:

D:\codes\laravel\arkanlabs_b2b\vendor\laravel\framework\src\Illuminate\Database\Connection.php:541 ErrorException::("PDO::exec(): MySQL server has away")

我在 stackOverFlow 中尝试了许多解决方案,例如: 1- 在 my.ini 中将 max_allowed_pa​​cket 最大化为 200M(不起作用) 2- 在 php.ini 中将 max_execution_time 最大化为 300(不起作用)

我也搜索过,我有一个解决方案不确定它是否有效,因为我无法确定/应用它来最大化 mysql 的连接超时

感谢任何帮助!

【问题讨论】:

    标签: php mysql laravel-8


    【解决方案1】:

    我通过在 my.ini 中的 [mysqld] 下设置 max_allowed_pa​​cket=200MB 然后重新启动您的 mysql 来解决它。

    我在 [mysqldump] 下设置了 max_allowed_pa​​cket,这是错误


    MySQL 转储:仅用于导出 sql。 MySQL:是 MySQL 客户端(或 mysql 守护程序),用于运行查询(在我的情况下插入这个 16 MB 的大 sql 文件)

    参考这个服务器故障问题:difference between mysql and mysqldump

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 2013-12-16
      • 2011-12-11
      • 1970-01-01
      • 2011-02-04
      • 2020-06-15
      • 2016-02-15
      相关资源
      最近更新 更多