2017-02-03 3 views
1

ist es möglich zu lesen, schreiben, ... zu/von einer MySQL-Datenbank auf einem Remote-Server gehostet? I.e. Kann ich über SSH eine Verbindung zur Datenbank herstellen und direkt CRUD-Vorgänge durchführen?iOS/Swift: Remote-MySQL direkt über SSH manipulieren

Ist SSH in iOS möglich/erlaubt, z. Kopieren von Bildern auf einen Remote-Server usw.?

+1

Wenn dies für eine öffentlich verbreitet App ist, es wäre wahrscheinlich nicht klug ... jemand könnte Ihre Anmeldeinformationen zurückentwickeln und dann globale Änderungen vornehmen. (Ich gehe nicht davon aus, dass Sie jeder Kopie Ihrer App separate Anmeldeinformationen geben möchten.) –

Antwort

1

Sie könnten ein Framework wie NMSSH verwenden - siehe here on Github.

Hier ist ein Anwendungsbeispiel aus einem project von cagnulein genommen:

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 & neueste NMSSH Version

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) 
} 
+0

ist MySQL auch hier möglich? – swalkner

+0

Es gibt Ihnen Zugriff auf Ihre SSH-Host und dann Befehl darauf ausführen. Nicht sicher, was meinst mySQL ist möglich. –

+0

aber das würde bedeuten, dass ich die Terminalausgabe in iOS analysieren müsste? Was ich brauche, ist z.B. alle Zeilen aus einer Tabelle - ist das möglich? – swalkner