导入MySQL Dump文件时数据库被锁,求跳过锁操作的方案
解决GCP Cloud SQL导入SQL文件时数据库锁死的问题
针对你遇到的导入时数据库锁死、数据无法插入的问题,可尝试以下几种方案:
清理dump文件中的锁表语句
即使导出时用了--single-transaction,dump文件里仍可能残留LOCK TABLES/UNLOCK TABLES语句。可以用命令批量删除这些行:sed -i '/^LOCK TABLES/d;/^UNLOCK TABLES/d' c_emailnotificationtemplate.sql处理后再重新导入。
导入时添加事务与锁跳过参数
执行导入命令时,同时加上--skip-lock-tables和--single-transaction参数,强制使用事务而非锁表来完成导入:mysql --host=<你的Cloud SQL实例IP> --user=root --password client_1002 --skip-lock-tables --single-transaction < c_emailnotificationtemplate.sql使用Cloud SQL原生导入功能
跳过本地mysql命令导入,改用GCP控制台的Cloud SQL导入功能:- 将SQL文件上传到Google Cloud Storage(GCS)桶中
- 在Cloud SQL实例的控制台页面,选择「导入」,指定GCS中的SQL文件和目标数据库
这种方式由GCP内部优化导入流程,能有效避免手动导入时的锁表问题。
确认目标表引擎为InnoDB
如果目标库的c_emailnotificationtemplate表是MyISAM引擎,导入时会强制锁表。先将表引擎改为InnoDB再导入:ALTER TABLE c_emailnotificationtemplate ENGINE=InnoDB;
内容的提问来源于stack exchange,提问作者Nitesh Mandal
相关产品推荐
相关产品推荐

