我正在尝试从Linux机器中获取MySQL数据库,并且在其他人的帮助下,我了解到获取数据库的最佳方法是执行mysqldump命令。查看Session.ExecuteCommand函数后,到目前为止我的代码是
static void Main(string[] args)
{
SessionOptions sessionSettings = new SessionOptions
{
Protocol = Protocol.SCP,
HostName = "*****",
UserName = "userName",
Password = "password",
SshHostKeyFingerprint = "ssh-rsa 2048 ******************"
};
using (Session session = new Session())
{
session.Open(sessionSettings);
string strFilePath = @"/tmp/mySqlDatabases.gz";
string strCommand = string.Format("mysqldump --opt -u {0} --password={1} --all-databases | gzip > {2}",
sessionSettings.UserName, sessionSettings.Password, tempFilePath);
session.ExecuteCommand(strCommand).Check();
session.GetFiles(strFilePath, @"C:\temp\mySqlDatabases.gz").Check();
}
}
当这个运行时,我能够获得没有问题的gz文件,但是我不确定我想要对新文件做什么。当我提取它时,我得到一个1 KB文件,我不知道如何使用,也不像数据库。我是否需要恢复此转储文件以获取我想要的数据库,或者我还缺少另一个步骤吗?