使用 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 < 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的主要内容,如果未能解决你的问题,请参考以下文章