Verbindung zu Fernem MariaDB Server mit ODBC Connector

  • VB.NET
  • .NET (FX) 4.0

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Blackn0va.

    Verbindung zu Fernem MariaDB Server mit ODBC Connector

    Moin,

    kann mir mal jedmand erklären, warum ich mich mit dem ODBC Connector "nur" auf dem Localen SQL Server verbinden kann?

    Ich habe einen MAriaDB Server der in der Ferne Steht.

    Heruntergeladen habe ich mir den ODBC Connector 5.3 ANSI Driver und Unicode Driver

    Aber er möchte bitte ums Verrecken keine Verbindung aufbauen.

    Lokal kein Problem.

    Ideen?
    Hallo

    Vermutlich lässt der Server (wie die meissten, so auch z.b. MS SQL) keine Remoteverbindungen von Haus aus zu. Auch bei MS SQL musst du dies explizit erlauben.

    Gerade gegoogelt: Erstes Ergebniss: mariadb.com/kb/en/library/conf…for-remote-client-access/
    Wie ich dachte.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Oder, da Maria DB ja ein nachbau von MySQL ist, man benutzt die MySQL Workbench um die User entsprechend zu konfigurieren.
    Wie @Nofear23m schon sagte, ist der root User, den MySQL und Maria DB anlegen, auf lokale Zugriffe beschränkt. Man kann also entweder die Beschränkung lockern/aufheben, oder einen neuen User ohne Beschränkung anlegen.

    Nofear23m schrieb:

    Hallo

    Vermutlich lässt der Server (wie die meissten, so auch z.b. MS SQL) keine Remoteverbindungen von Haus aus zu. Auch bei MS SQL musst du dies explizit erlauben.

    Gerade gegoogelt: Erstes Ergebniss: mariadb.com/kb/en/library/conf…for-remote-client-access/
    Wie ich dachte.

    Grüße
    Sascha


    Danke für die Antworten,

    also der Server ist devinitiv von außen zu erreichen, es liegt bestimmt an dem ODBC connector,

    jetzt hab ich den Connector jeweils 32 bit und 64 bit installiert, ändert nichts an der sache.
    Mit der MysqlWorkbench habe ich es auch schon versucht, wie EaranMaleasi es geschrieben hat, aber da kommt auch keine Verbindung zustande.

    Aber: Als referent habe ich einen fernen webserver mit einer demo homepage auf die SQL datenbank meines servers verbunden, ohne Probleme.

    Wenn ich mit der Workbench zu meinem Strato server verbinden möchte funktioniert dies auch nicht.
    Also entweder habe ich den die falschen Connectoren oder ich weiß nicht ^

    Ich steig da nicht durch.

    Blackn0va schrieb:

    Wenn ich mit der Workbench zu meinem Strato server verbinden möchte funktioniert dies auch nicht.
    Wie schon gesagt, du musst die Änderungen Lokal vornehmen, um von der Ferne drauf zugreifen zu können. Auf deinem Strato Server sollte neben der Datenbank noch ein phpMyAdmin oder sowas sein, mit dem du dich dann auf die DB verbinden kannst.
    Okay,

    also ich hab jetzt die zeilen auskommentiert

    VB.NET-Quellcode

    1. #skip-networking
    2. ...
    3. #bind-address = <some ip-address>


    und einem user die rechte gegeben um von jedem host aus zu verbinden

    VB.NET-Quellcode

    1. %


    in der Firewall von der NAS ist der Port 3306 Freigegeben und in der FritzBox ebenso eingetragen.

    funktioniert leider immer noch nicht.

    Das doofe ist, das ich von außen ja ohne probleme auf den SQL Server komme, nur eben nicht per Programmcode.

    Also Per Telnet, SSH, oder PHP kein Problem, aber per Connector schon^

    (Ich hab den DateiUpload gefunden!)

    Und mit dem Code möcht ich eine Abfrage starten, vlt ist das auch falsch.

    VB.NET-Quellcode

    1. Dim connect As New SqlConnection("Server= IchBenutzeEinenNameServer; Database= wordpress27; Integrated Security = true")
    2. Dim command As New SqlCommand("select * from wp27_users")
    3. command.Connection = connect
    4. Dim adapter As New SqlDataAdapter(command)
    5. Dim table As New DataTable()
    6. adapter.Fill(table)
    7. lstBox1.DataSource = table
    8. lstBox1.DisplayMember = "Fname"
    9. lstBox1.ValueMember = "id"


    Irgendwie fehlt das Password, richtig?
    Mein Fehler...


    Muss ich Irgendwo im Visual Studio die ODBC sachen importieren?
    Bilder
    • 2.JPG

      228,95 kB, 956×710, 234 mal angesehen

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Blackn0va“ ()

    Hallo

    Blackn0va schrieb:

    Integrated Security = true")

    ​Bist du denn über VPN in der Domäne das du der Meinung bist das Integrated funzen sollte? Solltest eher User und pass angeben. ​UID=root; PASSWORD=Password

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    hab ich weggenommen, hast recht :) sieht mittlerweile so aus, aber funktioniert leider nicht.

    VB.NET-Quellcode

    1. Dim connect2 As New SqlConnection("SERVER=IchBenutzeEinenNameServer;DATABASE=wordpress27;UID=root;PASSWORD=meinPassword;")


    seit einer minute kommt das hier, egal was ich eingebe UID, User, User id, USER ID...
    Bilder
    • 3.JPG

      20,1 kB, 438×154, 206 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Blackn0va“ ()

    @BlackNova aber bitte. Fehlermeldung?, hast du mit Angabe des Ports probiert?
    Und noch was, hast du es versucht innerhalb des Netzwerks?

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Wenn du meine Fragen beantwortest und es auch tatsächlich versuchst(!!) kann dir vielleicht geholfen werden da wir gewisse Fehler ausschließen könnten, ich vermute nämlich das du einen Post zu hast.
    ​Du schreibst das du auf den SQL Server kommst von außen. Aber du schreibst nicht wie. Welches Programm, welcher Post usw. Du lässt uns im dunkeln tappen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Die Ports sind schon Offen also TCP 3306, auf der FritzBox und aufm Server auch, mit der WorkBench komme ich nun auch drauf, nur eben nicht im Visual Studio.

    Mit phpMyAdmin komme ich von außen drauf ohne Probleme, mit der Workbench auch, mit putty über ssh funktioniert das auch einwandfrei ber den port 3306, 3307 ist MariaDB10 (egal)
    Im Windows unter "Systemsteuerung\System und Sicherheit\Verwaltung\ODBC-Datenquellen (64-Bit)" kann ich mich auch erfolgreich von außen und von lokal Verbinden.

    Ich habe auf windows10 64Bit
    MDAC Installliert,
    den ODBC Connector 32bit und 64bit??

    finde aber den Verweis zu Microsoft.Data.ODBC.dll nicht, das ist alles was ich weiß :)
    Bilder
    • 1.JPG

      10,03 kB, 236×37, 3.062 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Blackn0va“ ()

    OK, jetzt können wir weiter. Welchen Connector hast du? Diesen hier?: downloads.mariadb.org/connector-odbc/

    ​Das Problem ist, ich und vermutlich die meisten können das nicht probieren da wir keinen MariaDB Server haben, ich selbst habe einen MS SQL und einen MySQL Server, mehr kann ich nicht probieren.
    ​Lustigerweise habe ich gerade das hier gelesen: mariadb.com/kb/en/library/mariadb-and-net/
    ​Ist zwar lange her, aber so wie das klingt sollte er ja sogar mit dem MySQL Treiber laufen?

    ​Sorry, sonst kann ich nicht mehr viel helfen ohne es selbst zu versuchen.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Ahhh, ich hab da so ne Ahnung, ich vermute das es hier das selbe Problem gibt wie bei Access.

    Wie ich hier gesehen habe (ist übrigens neuer, kannst mal laden): dev.mysql.com/downloads/connector/net/
    ​Der Treiber scheint nur 32 Bit kompatibel zu sein. Stell mal dein Projekt auf X86, und schau mal was passiert.

    Grüße
    PS: Dann weis ich nicht mehr sehr viel weiter. ;(
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @Blackn0va ersetze mal alle SqlIregendwas Objekte durch MySqlIrgendwas. Du brabbelst die ganze Zeit i-was von ODBC nutzt aber die Klassen für Microsoft SQL Server (MSSQL) um dich zu einer Maria DB (MySQL) zu verbinden. Natürlich kann das nicht funktionieren. Du musst schon die MySQL Klassen nehmen.
    Für ODBC gibts im Framework extra OdbcIrgendwas Klassen.

    EaranMaleasi schrieb:

    @Blackn0va ersetze mal alle SqlIregendwas Objekte durch MySqlIrgendwas. Du brabbelst die ganze Zeit i-was von ODBC nutzt aber die Klassen für Microsoft SQL Server (MSSQL) um dich zu einer Maria DB (MySQL) zu verbinden. Natürlich kann das nicht funktionieren. Du musst schon die MySQL Klassen nehmen.
    Für ODBC gibts im Framework extra OdbcIrgendwas Klassen.


    ja da hast du recht ^
    aber das mit dem my funktioniert garnicht.
    Ich weiß das ich die ganze zeit von ODBC brabbel :) und weil das so verkehrt ist, schreibe ich ja hier im Forum, das mir geholfen wird ^
    Auf x86 funktioniert das leider auch nicht, selbe effekt.

    VB.NET-Quellcode

    1. Dim cn As OdbcConnection
    2. cn = New OdbcConnection("DRIVER={SQL Server};SERVER=IP VON SERVER;UID=root;" &
    3. "PWD=PASSWORD;DATABASE=wordpress27;")
    4. Dim mystring As String = "select * from wp27_users"
    5. Dim cmd As OdbcCommand = New OdbcCommand(mystring)
    6. cn.Open()
    7. MsgBox("Connected")
    8. cn.Close()

    dazu dieser fehler

    CONNECTED !

    Man ist das verzwickt.. also @Nofear23m hatte recht, alle hatten ein bischen recht :) hier zur lösung..

    MariaDB connector Downloaden 32 Bit !!
    downloads.mariadb.com/Connecto…ctor-odbc-3.0.2-win32.msi

    Project auf x86 einstellen, und der ConnectionString muss den Treiber namen enthalten..

    VB.NET-Quellcode

    1. cn = New OdbcConnection("DRIVER={MariaDB ODBC 3.0 Driver};SERVER=ServerIP;UID=root;" &
    2. "PWD=PASSWORD;DATABASE=wordpress27;")


    und das zweite war, das ich das sqlIrgendwas zu ODBCIrgendwas ändern musste.. was auch irgendwie klar ist ^

    Vielen Dank !
    Bilder
    • 1.JPG

      28,88 kB, 446×186, 220 mal angesehen

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Blackn0va“ ()

    Na bitte. Es gibt ja immer irgendeine Lösung.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Moin :)

    @EaranMaleasi, gestern war es spät, und ich hab nicht mehr richtig nachgedacht.. was du meintest ist ja nicht "my" sondern "odbc"
    also
    "OdbcDataAdapter"
    "OdbcCommand"
    "OdbcConnection"

    so funktioniert das auch, ich hab mich gestern auf das "My" aufgehängt :))

    Jetzt verstehe ich was du meinst.. und ja das funktioniert auch, danke für den Tipp @EaranMaleasi

    VB.NET-Quellcode

    1. Dim connect As New MySqlClient.MySqlConnection("SERVER=IPvonServer;UID=root;PWD=PASSWORD;DATABASE=wordpress27;PORT=3307")
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. Dim command As New MySqlClient.MySqlCommand("select * from wp27_posts")
    4. command.Connection = connect
    5. Dim adapter As New MySqlClient.MySqlDataAdapter(command)
    6. Dim table As New DataTable()
    7. adapter.Fill(table)
    8. lstBox1.DataSource = table
    9. lstBox1.DisplayMember = "post_title"
    10. lstBox1.ValueMember = "ID"


    danke! Gefällt mir auch besser als ddas rumgeeiere mit dem ODBC..

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Blackn0va“ ()