mysql 复制数据库,更改租户、定时任务等
2026/6/24 2:44:31 网站建设 项目流程

1.更改所有表租户id

1.1、动态生成所有表的更新语句,且有租户字段(tenant_id)的才需要更新,没有不更新。

SELECT CONCAT('UPDATE `', t.table_name, '` SET tenant_id = ''新租户'' WHERE tenant_id = ''旧租户'';') FROM information_schema.tables t JOIN information_schema.columns c ON c.table_schema = t.table_schema AND c.table_name = t.table_name WHERE t.table_schema = '你的数据库名' AND t.table_type = 'BASE TABLE' AND c.column_name = 'tenant_id';

1.2、复制结果执行

-- 1. 先禁用外键检查(避免约束报错) SET FOREIGN_KEY_CHECKS = 0; -- 2. 遍历所有表,批量更新 tenant_id UPDATE table1 SET tenant_id = 200 WHERE tenant_id = 100; -- 动态生成所有表的更新语句 -- 复制结果执行 -- 3. 恢复外键检查 SET FOREIGN_KEY_CHECKS = 1;

2.复制定时任务(xxl-job)

字段job_group为执行器表xxl_job_group的id

INSERT INTO `enuo-xxl-job`.`xxl_job_info`(`job_group`, `job_cron`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `executor_route_strategy`, `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`, `trigger_status`, `trigger_last_time`, `trigger_next_time`) SELECT 13 job_group, job_cron, job_desc, add_time, update_time, author, alarm_email, executor_route_strategy, executor_handler, executor_param, executor_block_strategy, executor_timeout, executor_fail_retry_count, glue_type, glue_source, glue_remark, glue_updatetime, child_jobid, trigger_status, trigger_last_time, trigger_next_time FROM `enuo-xxl-job`.xxl_job_info WHERE `job_group` = '10' order by id;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询