【发布时间】:2013-10-17 22:25:23
【问题描述】:
//更新:输入 mysql 密码时,-ppassword 有效。 -p 密码不起作用。问题解决了。//
我们的工作服务器上有数百个数据库,我想编写一个 ruby 脚本,以自动在我的本地计算机上创建它们的重复版本以用于开发目的。
我一直在尝试使用 net-ssh 创建隧道,但是(出于显而易见的原因,主机、用户、密码等被审查):
require 'net/ssh'
HOST = 'xxx'
USER = 'yyy'
PASS = 'ppp'
Net::SSH.start( HOST, USER, :password => PASS ) do|ssh|
puts "inside ssh tunnel"
puts ssh.exec!('ruby -v')
puts ssh.exec!('mysql -u zzz -p pswrd -h c3 will_il_raw -e "select * from deeds limit 1"')
end
输出结果:
inside ssh tunnel
ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
随后无限期挂起。有趣的是,如果我通过控制台 ssh 进入同一台计算机,“ruby -v”会返回 1.9.3。如果我在那里输入那个 mysql 查询,它会成功返回命名表的一行。
我认为解决方案与端口转发有关,但在这里我有限的知识开始让我彻底失败。
运行 mysql 服务器的机器与我访问它的机器不同,而这又不是我实际坐的机器。我需要把这些点联系起来,显然不知道如何正确处理。
任何提示将不胜感激。
【问题讨论】:
-
我唯一的提示是您的问题不是端口转发。
-
没关系。显然问题出在语法上。我在脚本中的 -p 和密码之间有一个空格 -_- $%^&。出色地。希望我有五个小时回来。
-
如果您认为它与其他用户无关,也许可以删除您的问题?
-
@MaxwellEvans 您应该将其发布为答案
-
请,不要这样做。从命令行运行 SQL 是鲁莽的。利用结果也将是地狱。