Verbindung zu einem Online MySQL-Datenbankserver

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von just_one_help4me.

    Verbindung zu einem Online MySQL-Datenbankserver

    Ich steh ma wieder auf der Leitung.
    Für ein größeres Projekt, das ich realisieren muss brauche ich eine Verbindung zu einem Datenbankserver, der im Internet steht. Der Zugriff läuft über die Webseite mit phpMyAdmin und von der Seite db4free.net betrieben. Man muss ich registrieren und dann kann man eine Datenbank zu Testzwecken einrichten. Wenn man einen Account hat, kann man unter phpMyAdmin der Seite die SQL Abfragen gestalten und sonst was machen.
    Wie schon in viele Threads und auch unter/auf openbook.galileocomputing.de erklärt wurde, muss man die Verbindung mir einen Treiber, bevorzugt OleDB eine Verbindung aufbauen, dafür braucht man den Treiber und den Pfad der Datenbank:

    VB.NET-Quellcode

    1. con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source="C:\Tem\firma.mdb"
    2. [...]


    Was muss ich jetzt unter Data Source eintragen, wenn ich die Tabelle oder was auch immer ich da ansprechen woll, sich im Internet befindet? Ich habs schon mit db4free.net/phpMyAdmin/index.php/usr=*****&psw=**** und bei allen Versuchen bekomme ich eine Fehlermeldung dass irgendwas mit meinem Netztwerk nicht stimmt (Ich hab das ganze mit nem Try...Catch abgefangen und mir bei Catch die Fehlerursache plus Fehlercode anzeigen lassen.
    Aber was mach ich da falsch? Oder kann ich mit .Net gar ned auf nen online Server zugreifen? Ich mein, wenn ich mir ein x-beliebiges SQL-Tool hole, wie es bei dem WoW-Mangos Server dabei is, dann kann ich da ja auch Server-IP, Port, Passwort und Username eingeben und des haut hin. Warum hier ned?
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Erst ma danke für die schnelle Antwort.
    Aber zwei Fragen:
    1.) Wenn auf galileocomputing steht, dass ich mir diesen Treiber runterladen muss, damit des gehr, heißt dass nicht auch dass ich wenn ich das Programm auf einen anderen Rechner, der diesen Treiber nicht hat, nur das neueste .NET, das Programm ned geht, weil wie gesagt der Treiber fehlt? Oder is das Programm auf jedem Rechner mit .NET lauffähig?
    2.)Wie auf connectionsstrings.com bei MySQL OLEDB erklärt muss ich unter Provider den Name der Datenbank und was dann unter Data Source? Den Tabellen Namen? Bzw ich werde ja irgendwo einen Port brauchen, über den das Programm auf die DB zugreift? Is der im phpMyAdmin GUI hinterlegt oder muss ich den von den Betreibern in Erfahrung bringen?
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    ich hatte mich ja auch mal nach einer mySql-Online-Db umgetan, und dabei stellte sich heraus, dass die meisten mySql-Db-Anbieter für umsonst die DB nur für den Zugriff via Php freischalten - nicht für reguläre Db-Connections.

    Schließlich hat jmd hier von VBP mir eine DB "spendiert", die auf kasserver.com gehostet wird. Dort habich regulären Zugriff.
    Aber weil ichs halt spendiert bekommen hab, weiß ich nicht, wie man sich da anmeldet, und ob das kostenpflichtig ist.
    @petaod:
    Danke für den Link, aber ich glaube du hast meine Frage nicht richtig verstanden.
    Ich wollte wissen, ob ich ein VB Programm, das ich auf Rechner A, auf dem .NET + Connector läuft, auch auf Rechner B, auf dem nur .NET läuft, ausführen kann/ob es auf dem Rechner funktioniert, oder ob da alles nötige beim kompillieren mit reingeladen wurde.
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    ou - so hab ich die Frage auch nicht verstanden - Donnerwetter!

    Ja, normal denke ich, muss der Connector nur auf dem Entwicklungsrechner installiert sein.
    Sicher wissen tut man es erst, wennmans ausprobiert hat.

    Ist ja auch die Frage, ob man ein Setup ausliefert, oder einfach einen Ordner mit den ganzen Dlls drinne, und hoffen, dass keine fehlt, bzw. fehlende auf dem Zielrechner installiert sind.

    (Achtung: Wirklich Ahnung von Ausliefern hab ich nicht - reime ich mir nur so zusammen)
    Gut, lassen wir das jetzt bitte mit dem Connector und ob des auf anderen läuft, mir ging es sowieso in erster Linie darum, zu erfahren, wie ich die Verbindung überhaupt aufbaue.
    Ich hab mir jetzt so mehr oder weniger den Code von diversen Seiten undTutorien zusammen geschnipselt:

    VB.NET-Quellcode

    1. Imports System.Data.SqlClient
    2. Imports MySql.Data
    3. Imports MySql.Data.MySqlClient
    4. Private Sub Button1_Click(...) Handles Button1.Click
    5. Dim con as New MySqlConnection
    6. Dim cmd as new MySqlConnection
    7. Dim reader as MySqlDataReader
    8. con.ConnectionString = "Server=144.76.19.105;Database=myDatabase;user id=myID;Pwd=myPw;"
    9. cmd.Connection = con
    10. cmd.CommandText = "select * from test"
    11. Try
    12. con.Open()
    13. reader = cmd.ExecuteReader()
    14. reader.Read()
    15. Label1.Text = reader.GetValue(0)
    16. Label2.Text = reader.GetValue(1)
    17. reader.Close()
    18. con.Close()
    19. Catch ex As Exception
    20. MsgBox(Err.Number & vbCrLf & ex.Message)
    21. End Try
    22. End Sub

    Allerdings erhalt ich jedes mal wenn ich das ausführe die folgende Fehlermeldung:
    Und ich verstehe nicht, an was das liegt, liegt es an der Firewall, an meinem Router oder an was? Port hab ich auf in Erfahrung gebracht, der ist der standart Port 3306, den Server hab ich sowohl mit 'db4free.net', als auch mit '144.56.19.105' getestet, alles das selbe. Ich hab sogar auf Google ein Video gefunden, es genau so nachgemacht - nur die Mail-Adresse und den Datenbanknamen, sowie Usernamen leicht(logisch) geändert. Selber Fehler.

    PS: Wenn wer selber die Verbindung testen will, einfach PN an mich, dann schick ich ihm die Daten, zum testen, vielleicht klappt es ja bei einem von euch.
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

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

    just_one_help4me schrieb:

    Dim cmd as new MySqlConnection
    Fällt dir etwas auf?

    Das Problem müsste aber auch die IDE anmeckern.
    Spätestens bei cmd.CommandText = "select * from test" müsstest du eine aussagekräftige Fehlermeldung bekommen, die dich zum Nachdenken bringen sollte.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

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

    Ach verdammt...hab mich in meinem Post verschrieben:

    VB.NET-Quellcode

    1. Dim con As new MySqlConnection
    2. Dim cmd As new MySqlCommand

    So hab ichs bei mir stehen, ned so wie ich es vorher geschrieben habe, aber danke dass du mich darauf aufmerksam gemacht hast.
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    ErfinderDesRades schrieb:

    ich hatte mich ja auch mal nach einer mySql-Online-Db umgetan, und dabei stellte sich heraus, dass die meisten mySql-Db-Anbieter für umsonst die DB nur für den Zugriff via Php freischalten - nicht für reguläre Db-Connections.

    Schließlich hat jmd hier von VBP mir eine DB "spendiert", die auf kasserver.com gehostet wird. Dort habich regulären Zugriff.
    Aber weil ichs halt spendiert bekommen hab, weiß ich nicht, wie man sich da anmeldet, und ob das kostenpflichtig ist.


    (@ErfinderDesRades: du kannst noch mehr haben, hab immernoch 21 frei^^)

    "anmelden" tu ich mich über das KASvon All-Inkl... Von dort hab ich Zugriff auf alle Datenbanken die unter meinen Account laufen...
    Im KAS kann ich direkt auf die Datenbank zugreifen ohne die Datenbank-Logindaten einzugeben....Mir wird im KAS eine "1-Click-Verbindung" wird als Button angezeigt...darüber land ich dann ganz normal auf dem kasserver(phpMyAdmin).

    Letztendlich hab ich auch nicht mehr Zugriff auf die DB...
    Ich kann drauf zugreifen
    - Übers KAS
    - über php
    - über n ConString (die Möglichkeit, die @ErfinderDesRades in seinem Programm nutzt...oder ich eben in meinen programmen)
    Mehr Möglichkeiten hab ich nicht...und ich denke auch mehr braucht man nicht...

    Das einzig negative was ich bei All-Inkl sehe: jeder SQL-User hat gleiche Zugriffsrechte...-.-
    Ich hab sie in meinem Programm schon durch was gültiges ersetzt...wie ich schon in meinem letzten Post geschrieben habe, kannst du mich per PN anschreiben und ich geb dir die Zugangsdaten, damit du es testen kannst.
    Allerdings mach das bitte nicht mit einem DB-Programm, sondern kopier dir den Code von mir und füg die Daten ein und teste, ob bei dir die Verbindung klappt oder ned. Es ging mir ja nicht darum, ob man mit irgendeinem DB-Programm darauf zugreifen kann, sondern was ich in meinem Code falsch mache.
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell