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

如何从仅绑定localhost的远程服务器导出MySQL数据库?

从仅绑定localhost的远程服务器导出MySQL数据库的方案

你的mysqldump命令失败,核心原因是远程MySQL服务仅绑定了localhost(127.0.0.1),外部无法直接访问其3306端口。下面提供两种可行的解决思路:

思路一:SSH本地端口转发

先通过SSH隧道将远程服务器的MySQL端口映射到本地,再从本地连接导出:

  1. 建立SSH隧道(新开终端执行,保持窗口运行):
ssh -L 3307:127.0.0.1:3306 <remote_ssh_user>@<remote_machine_ip>

参数说明:-L表示本地端口转发,格式为本地端口:远程服务器内部地址:远程服务端口,这里填127.0.0.1是因为MySQL仅绑定远程服务器自身的localhost。

  1. 另开终端执行导出命令,连接本地映射的端口:
mysqldump -u<mysql_user> -p -h 127.0.0.1 -P 3307 <database_name> > dump.dmp
  • 去掉命令行中的明文密码,只保留-p,执行时交互式输入更安全;
  • 若需导出单个表,将<database_name>替换为<database_name>.<table_name>;
  • -P(大写)指定端口,对应之前映射的本地3307端口。

思路二:直接通过SSH执行远程mysqldump

无需端口转发,直接让远程服务器运行mysqldump,并通过SSH将输出传回本地保存:

ssh <remote_ssh_user>@<remote_machine_ip> "mysqldump -u<mysql_user> -p <database_name>" > dump.dmp

执行时会先提示输入SSH登录密码,再提示输入MySQL密码,最终导出文件直接保存在本地。

额外提示

  • 如果本地3307端口被占用,可替换为其他未使用的端口(如3308),注意两处命令的端口保持一致;
  • 若想让SSH隧道在后台运行,可添加-fN参数:ssh -fN -L 3307:127.0.0.1:3306 <remote_ssh_user>@<remote_machine_ip>,导出完成后可通过ps aux | grep ssh找到进程并终止。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:40:29