Laravel 8: ErrorException::("PDO::exec(): MySQL server has gone away") 调用时 DB::unprepared($sql)
Laravel 8: ErrorException::("PDO::exec(): MySQL server has gone away") when calling DB::unprepared($sql)
我运行一个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 gone away")
我在 Whosebug 中尝试了很多解决方案,例如:
1- 在 my.ini 中将 max_allowed_packet 最大化到 200M(没有用)
2- 在 php.ini 中将 max_execution_time 最大化到 300(无效)
我也搜索过,我有一个解决方案不确定是否有效,因为我不能 determine/apply 它是 mysql
的最大超时连接
感谢任何帮助!
我通过在[mysqld]下设置max_allowed_packet=200MB解决了my.ini 然后重启你的 mysql .
我在 [mysqldump] 下设置了 max_allowed_packet,这是 错误的。
MySQL 转储:仅用于导出 sql。
MySQL:是 MySQL 客户端(或 mysql 守护程序),用于 运行 查询(在我的例子中插入这个大的 16 MB sql 文件)
参考这个服务器故障问题:difference between mysql and mysqldump
我运行一个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 gone away")
我在 Whosebug 中尝试了很多解决方案,例如: 1- 在 my.ini 中将 max_allowed_packet 最大化到 200M(没有用) 2- 在 php.ini 中将 max_execution_time 最大化到 300(无效)
我也搜索过,我有一个解决方案不确定是否有效,因为我不能 determine/apply 它是 mysql
的最大超时连接感谢任何帮助!
我通过在[mysqld]下设置max_allowed_packet=200MB解决了my.ini 然后重启你的 mysql .
我在 [mysqldump] 下设置了 max_allowed_packet,这是 错误的。
MySQL 转储:仅用于导出 sql。 MySQL:是 MySQL 客户端(或 mysql 守护程序),用于 运行 查询(在我的例子中插入这个大的 16 MB sql 文件)
参考这个服务器故障问题:difference between mysql and mysqldump