Verbindung /-string für MySQL auf Linux (Debian) Server

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von bemme90.

    Verbindung /-string für MySQL auf Linux (Debian) Server

    Hy Leute,
    mit folgenden Code lese ich meine SQL-Datenbank aus:

    Quellcode

    1. Imports MySql.Data.MySqlClient
    2. Public Class Form1
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. Dim con As New MySqlConnection
    5. Dim cmd As New MySqlCommand
    6. Dim reader As MySqlDataReader
    7. con.ConnectionString = "server=localhost;database=test;UID=root;pwd="
    8. cmd.Connection = con
    9. cmd.CommandText = "SELECT * FROM kunde"
    10. ListBox1.Items.Clear()
    11. Try
    12. con.Open()
    13. reader = cmd.ExecuteReader
    14. Do While reader.Read
    15. ListBox1.Items.Add( _
    16. reader("Nummer") & " ")
    17. 'reader("vorname") & " " & _
    18. 'reader("Nachname"))
    19. Loop
    20. reader.Close()
    21. con.Close()
    22. MsgBox("Fertig geladen!!!", vbInformation, "Alles OK")
    23. Catch ex As Exception
    24. MsgBox(ex.Message)
    25. End Try
    26. End Sub
    27. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    28. End Sub
    29. End Class


    Das klappt auch super, wenn ich die Datenbank auf dem gleichen PC laufen habe.

    Jetzt besitze ich einen Debian Server (IP:192.xxx.xx.xxx) (Virtualbox) und möchte, dass er die dort vorhandene Datenbank ausliest.
    Die Verbindung über das Netzwerk steht, aber wie sage ich das im Code?

    Wenn mir jemand helfen könnte, wäre das super.

    vg Bemme90

    Die Verbindung über das Netzwerk steht, aber wie sage ich das im Code?


    Was soll man unter dieser Fragestellung verstehen?
    Ob du nun auf eine Datenbank über das Netzwerk zugreifen möchtest oder ob du auf eine Datenbank via localhost zugreifen möchtest ist erstmal für die Verbindung und das DBMS egal. Wichtig ist eben nur, dass die MySQL-Konfiguration so konfiguriert wurde, dass eine Verbindung auch über ein ethernet interface hergestellt werden kann.

    Und clientseitig musst du eben auch angeben zu welchem Server du dich verbinden möchtest, anhand des Verbindungsstrings ("server=192.xxx.xxx.xxx;")
    Wichtig ist eben nur, dass die MySQL-Konfiguration so konfiguriert wurde, dass eine Verbindung auch über ein ethernet interface hergestellt werden kann.

    Gut, da wären wir beim ersten Thema, was ich nicht beachtet habe...muss ich mir also mal ansehen bzw. hast du ne Info, was ich machen muss?

    Und clientseitig musst du eben auch angeben zu welchem Server du dich verbinden möchtest, anhand des Verbindungsstrings ("server=192.xxx.xxx.xxx;")

    Schon, aber auf dem Linuxserver ist es ja auch unter localhost zu finden.
    Müsste es dann nicht so o.ä. lauten:
    "server=localhost@192.xxx.xxx.xxx;"
    Achso, das habe ich jetzt nicht beachtet. Läuft deine Anwendung auf dem selben Server wie die Datenbank?
    Dann benötigst du keine Änderungen an der Konfiguration.
    Falls die Maschine wo die Anwendung läuft ein anderer ist als die der Datenbank dann schon.
    Also:

    Ich habe einen Windows 7 Rechner, wo das "Programm" zum Datenbank auslesen drauf ist.

    Die Datenbank selber ist auf dem Linux-Server.

    Jetzt soll das Windows 7 Programm auf MySQL von Linux zugreifen.

    Verbunden sind die beiden über LAN. Der Windows 7 Server findet den Debian Server (per Ping oder SSH).

    Muss ich jetzt auf dem Server die Berechtigung für extern zulassen oder auf dem Windows 7 Rechner die Verbindung erzeugen.

    Quellcode

    1. con.ConnectionString = "server=localhost;database=test;UID=root;pwd="


    ist dein code wenn rechner von programm und datenbank gleich sind.

    wenn du jetzt dein prgramm auf deinen pc laufen lässt und die datenbank im netzwerk/internet/whatever hast, dann:

    Quellcode

    1. con.ConnectionString = "server=123.123.123.123;database=test;UID=root;pwd="


    wenn du deine ip adresse des servers nicht weißt:
    einfach ifconfig in die console eingeben. diese sollte dir dann soetwas ausgeben:

    Quellcode

    1. root@noname:~# ifconfig
    2. eth0 Link encap:Ethernet Hardware Adresse XX:XX:XX:XX:XX:XX
    3. inet Adresse:192.168.0.47 Bcast:192.168.0.255 Maske:255.255.255.0
    4. inet6-Adresse: XXXX::XXXX:XXXX:XXXX:XXXXXXX Gültigkeitsbereich:Verbin


    also in meinen fall:

    Quellcode

    1. con.ConnectionString = "server=192.168.0.47;database=test;UID=root;pwd="
    Serverside:

    /etc/mysql/my.cnf ändern:

    suchen:

    Quellcode

    1. #
    2. # Instead of skip-networking the default is now to listen only on
    3. # localhost which is more compatible and is not less secure.
    4. bind-address = 127.0.0.1


    bind-address auf ip-addresse des ethernet interfaces ändern ;)

    speichern und mysql neustarten.

    Sollte doch nicht zu schwer sein or?
    Ne, eigentlich sollte es nicht schwer sein, funktionieren tut es trotzdem nicht.

    Ich starte auf dem Win7 Rechner MySQL Workbench und gebe dort die Server-Adresse an.
    BEim Verusch eine Verbindung aufzubauen, bekomme ich jedoch eine Fehlermeldung.

    Im Linux-Server wurde die Config lt. Umbekannt angepasst.
    Trotzdem kriegt er keine Verbindung.
    Es läuft alles über lampp...muss ich da noch irgendwelche Einstellungen lt. Setup-Config machen?
    Bilder
    • Unbenannt.jpg

      46,64 kB, 376×191, 91 mal angesehen