使用Lando导入WordPress数据库遇ERROR 2006(HY000)问题求助
解决Lando导入WordPress数据库时"MySQL server has gone away"错误
问题背景
Ubuntu 22.04系统下,使用Lando搭建本地WordPress环境,执行lando db-import data.sql导入数据库时,持续报错:
ERROR 2006 (HY000) at line 654: MySQL server has gone away
已在本地my.cnf添加以下配置并重启MySQL,但问题未解决:
[mysqld] wait_timeout = 28800 interactive_timeout = 28800 max_packet_size = 128M
本地其他9个Lando站点均无此问题,怀疑当前数据库备份文件损坏,尝试Stack Overflow相关Ubuntu方案无效。
解决方案
1. 修正Lando容器内的MySQL配置
Lando使用独立容器运行MySQL,本地my.cnf配置不会同步到容器内,需直接修改容器内参数:
- 进入数据库容器:
若不确定服务名,执行lando ssh -s databaselando info查看数据库服务的service字段值。 - 编辑容器内的MySQL配置文件(路径通常为
/etc/mysql/mysql.conf.d/mysqld.cnf),添加或调整:[mysqld] wait_timeout = 28800 interactive_timeout = 28800 max_allowed_packet = 256M - 重启容器内的MySQL服务:
或直接重启整个Lando环境:service mysql restartlando restart
2. 验证并修复SQL备份文件
- 用Lando自带的MySQL客户端检查文件完整性:
若报错指向特定行,手动检查该行SQL语句是否存在语法错误、特殊字符或过大字段。lando mysql < data.sql - 若文件损坏,重新从原WordPress站点导出数据库;或尝试删除报错行附近的异常内容后再次导入。
3. 分批次导入大SQL文件
若SQL文件体积过大,拆分后分批导入:
- 按行数拆分文件(示例按1万行拆分):
split -l 10000 data.sql data_part_ - 依次导入拆分后的文件:
lando db-import data_part_aa lando db-import data_part_ab # 后续文件以此类推
4. 通过Lando配置文件永久覆盖MySQL参数
在当前站点的.lando.yml中添加数据库服务的自定义配置,避免每次重启容器丢失设置:
services: database: type: mysql:8.0 # 替换为你的MySQL版本 config: database: my.cnf: | [mysqld] wait_timeout = 28800 interactive_timeout = 28800 max_allowed_packet = 256M
执行lando rebuild让配置生效后,重新尝试导入。
内容的提问来源于stack exchange,提问作者Subrata Sarkar
相关产品推荐
相关产品推荐

