You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从本地MySQL数据库向远程MySQL服务器插入/替换数据

从本地MySQL向远程MySQL复制指定时间范围的数据

你的核心问题是当前命令连接的是远程服务器,导致SELECT操作读取的是远程的pswx_raccar库,而非本地数据源。以下是两种可行的解决方案:

方法1:用mysqldump+管道直接传输(推荐)

这个方式直接从本地导出符合条件的数据,通过管道实时导入到远程数据库,无需生成中间文件。

# 替换[本地用户名]和[本地密码]为你的本地MySQL账号信息
mysqldump -u [本地用户名] -p[本地密码] pswx_raccar positions_1906 --where="device_time BETWEEN '2023-06-11 00:00:00' AND '2023-07-01 23:59:00'" --replace | mysql -h 161.x.x.x -u repair -p5ThNqHdyRwC repair_raccar
  • --replace参数会让导入时自动替换主键/唯一键冲突的数据,和你要的REPLACE效果一致
  • 若想更安全地输入本地MySQL密码,可去掉-p[本地密码],执行时会提示手动输入

方法2:本地MySQL跨服务器执行REPLACE

如果本地MySQL能直接连接远程服务器,可通过创建FEDERATED表映射远程目标表,再执行REPLACE操作:

  1. 先在本地创建远程目标表的映射(表结构必须和远程完全一致):
CREATE TABLE repair_raccar.positions_1906 (
    -- 复制远程repair_raccar.positions_1906的完整CREATE TABLE语句内容
) ENGINE=FEDERATED CONNECTION='mysql://repair:5ThNqHdyRwC@161.x.x.x/repair_raccar/positions_1906';
  1. 在本地MySQL客户端执行REPLACE语句:
REPLACE INTO repair_raccar.positions_1906
SELECT * FROM pswx_raccar.positions_1906
WHERE device_time BETWEEN '2023-06-11 00:00:00' AND '2023-07-01 23:59:00';

额外提示

  • 若远程MySQL端口非默认3306,需在mysql命令后加-P [端口号]参数
  • 大数据量传输时,可添加--compress参数到mysqldump和mysql,减少网络带宽占用
  • 执行前可给mysqldump加--dry-run参数,预览导出内容,避免误操作

内容的提问来源于stack exchange,提问作者Hrishi m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 20:50:14