使用 SSH 隧道将本地 SQL 文件导入远程服务器上的 MySQL

Posted

技术标签:

【中文标题】使用 SSH 隧道将本地 SQL 文件导入远程服务器上的 MySQL【英文标题】:Import a local SQL File To MySQL on a Remote Server Using SSH Tunnel 【发布时间】:2012-05-29 23:38:04 【问题描述】:

我的本​​地主机和远程服务器之间使用 putty SSH 隧道建立了连接。

没关系。

现在我需要一个命令来获取本地机器上的 sql 文件,即 c:\folder\test.sql 并将其导入远程服务器上的 mysql

我想也许……

mysql -u prefix_username -p testpass -h localhost -P 3307 prefix_testdb

然后执行类似的命令

mysql -p testpass -u prefix_username prefix_testdb < c:\folder\test.sql 

此命令无效。

我怎样才能做到这一点?

【问题讨论】:

真的要导入到远程机器上的mysql服务器吗?那么就不需要先传输到本地机器了。 这是一个从不同服务器到我将使用的远程服务器的 SQL 文件 【参考方案1】:

你应该运行这个命令

mysql -h host -u user_name -pPassword database < file.sql > output.log

file.sql 包含要运行的 sql 查询,而 output.log 仅在您有返回某些内容的查询(如选择)时才有意义

我可以在您的代码中看到的唯一不同之处是 -p 选项和密码之间的空格。如果使用 -p 选项,则必须在不留任何空格的情况下写入密码。或者您可以使用选项 --password=Password

希望你能解决问题

【讨论】:

理想情况下是这样。不过,在您真正知道自己在做什么之前,允许远程连接到 mysql 服务器可能不是一个好习惯。 如果您的sql 文件包含架构定义,您只需运行:mysql -h host -u user_name -pPassword &lt; file.sql host 这里是什么意思? root@myServerIp? 如果.sql文件在本地电脑上怎么办! 我知道这是旧的,但它可以帮助某人......如果在 Linux 上或什至使用 Windows 子系统 Linux 上处理密码,最简单的方法是创建一个名为“.my.cnf”的文件你的主目录。该文件应包含以下用于恢复的行: [mysql] username=username password=mysecret【参考方案2】:

您需要通过 ssh 连接到远程机器并附加 mysql 命令:

ssh remote_user@remote_server mysql -p testpass -u username testdb < c:\folder\test.sql 

【讨论】:

【参考方案3】:
 1. mysql -h xxx -uxxx -pxxx . //login to the remote mysql
 2. use DATABASE.             //assign which db to import
 3. source path/to/file.sql  //the path can be your local sql file path.

参考:Import SQL file into mysql

【讨论】:

【参考方案4】:

使用 'scp' 复制并使用 mysql 插入到您的本地计算机。

语法:

scp remote_user@remove_server:/path/to/sql/file.sql ~/path/to/local/directory

在您传输文件后使用:

mysql -uYouUserName -p name_of_database_to_import_to < ~/path/to/local/directory/file.sql

【讨论】:

或者你使用这个mysql -u username -p database_name use db_name; mysql> 源备份-file.sql;【参考方案5】:

您可以使用pscp 将文件上传到服务器。转到你的命令行并输入这个

pscp.exe c:\folder\test.sql usernameoftheserver@websitename.com:/serverpath

【讨论】:

以上是关于使用 SSH 隧道将本地 SQL 文件导入远程服务器上的 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

如何在两跳 SSH 隧道上使用 JProfiler

[视频教程]利用SSH隧道进行远程腾讯云服务器项目xdebug调试

借助ssh隧道和中间主机,使本地主机可以直连远程主机

SSH隧道:本地=>网关=> MySQL服务器

SSH隧道到远程服务器的问题

使用 SSH 隧道时无法通过套接字错误连接到本地 MySQL 服务器