【问题标题】:iOS/Swift: directly manipulate remote MySQL over SSHiOS/Swift:通过 SSH 直接操作远程 MySQL
【发布时间】:2017-10-19 22:44:08
【问题描述】:

是否可以从托管在远程服务器上的 MySQL 数据库读取、写入……? IE。我可以通过 SSH 连接到数据库并直接进行 CRUD 操作吗?

在 iOS 中是否可以/允许使用 SSH,例如将图像复制到远程服务器等?

【问题讨论】:

  • 如果这是针对公开分发的应用程序,那可能是不明智的……有人可以对您的凭据进行逆向工程,然后进行全局更改。 (我不认为您希望为您的应用程序的每个副本提供单独的凭据。)

标签: ios mysql ssh swift3


【解决方案1】:

您可以使用 NMSSH 之类的框架 - 请参阅 here on Github

以下是 cagnulein 取自 project 的使用示例:

var host = "your-host.com"
var username = "user"
var password = "pass"
var session = NMSSHSession(host: host, andUsername: username)

session.connect()

if session.connected == true {
    session.authenticateByPassword(password)
    if session.authorized == true {
        NSLog("Authentication succeeded")
    }

    var error = NSErrorPointer()
    var response = session.channel.execute("ls", error: error)

    NSLog("List of my files %@", response)
}

session.disconnect()

Swift 4 和最新的 NMSSH 版本

do {
    let host = "example.com"
    let username = "user"
    let password = "pass"
    let session = NMSSHSession(host: host, andUsername: username)

    session?.connect()
    if session?.isConnected ?? false {
        session?.authenticate(byPassword: password)
        if session?.isAuthorized ?? false {
            print("Authentication succeeded")
        }
        let response = try session?.channel.execute("ls")
        print("List of my files:", response)
    }
    session?.disconnect()
} catch {
    print(error)
}

【讨论】:

  • 这里也可以使用 MySQL 吗?
  • 它使您可以访问您的 ssh 主机,然后在其上运行命令。不确定你的意思是 mySQL 是可能的。
  • 但这意味着我必须在 iOS 中解析终端输出?我需要的是得到例如表中的所有行 - 这可能吗?
  • 我真的不知道。您应该使用该框架,看看有哪些选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 2019-09-15
相关资源
最近更新 更多