MySQL im Netzwerk

bpblub

Cadet 4th Year
Registriert
Mai 2008
Beiträge
124
Hey Leute,

ich beschäftige mich seid mehreren Tagen mit C# und MySQL. Ich habe einen eigenen Homeserver der als MySql-Server läuft. Mein Problem ist jetzt, dass ich mit meinen Programm auf mein MySql-Server im Netzwerk eine Verbindung herstellen will. Nur das klappt anscheinend nicht so gut.
Jetzt hab ich mir gedacht, das ich mein Code mal auf mein Localhost ausprobiere und zack geht es.
Also ist das Problem wahrscheinlich im Netzwerk oder in der MySql-Datenbank.

- Firewall ist aus
- Port ist offen, wobei das nichts mit den Netzwerk zu tun hat?

Vielleicht poste ich am Besten nochmal den Code, aber er funktioniert soweit:

Code:
			MySqlConnection connection = new MySqlConnection("DataBase = test; DataSource = 192.168.2.37; User ID = root; Password = abcde1234");
            
			try
			{
				connection.Open();
				if (connection.State == ConnectionState.Open)
				{
					textBox6.Text = "Verbindung erfolgreich";
					connection.Close();
				}
			}
			catch (Exception exception)
			{
				textBox6.Text = exception.Message;
				connection.Close();
			}
Das Problem ist, dass ich keine Verbindung zwischen mein Homeserver bekomme und dem Rechner. Die Fehlermeldung ist:
"Access denied for user 'root'@'BLUB' (using password: YES)"

Ich hab mir es auch schwer mit der Auswahl des Forums getan, ob ich es jetzt lieber in Programmieren oder in Netzwerk reinposten soll.

Naja, ich hoffe es kann mir jemand helfen und ich hab nicht was all zu peinliches übersehen.

lg
blub ; )
 
Zuletzt bearbeitet:
Ein Zugriff auf den root-User hat aller Wahrscheinlichkeit nach nur der localhost, was bei der Installation Standard ist. Demnach ist nur root@localhost berechtigt und nicht 'root'@'BLUB'. Blub ist demnach dein Rechner.
Am einfachsten ist es, wenn du Host beim root-Nutzer auf "%" setzt. Dann kann man von jedem Rechner zugreifen. Bedenke allerdings, daß ggf. auch aus dem Internet mit root-Rechten auf deinen MySQL zugegriffen werden kann.
 
msycho schrieb:

Also ich hab den mysql-connector-net-1.0.10.1 auf Windows XP installiert. Könnte das Problem trotzdem entstehen, selbst wenn ich auf ein Localhost connecten kann mit der selben MySQLversion?

pvc-junkie schrieb:
Ein Zugriff auf den root-User hat aller Wahrscheinlichkeit nach nur der localhost, was bei der Installation Standard ist. Demnach ist nur root@localhost berechtigt und nicht 'root'@'BLUB'. Blub ist demnach dein Rechner.
Am einfachsten ist es, wenn du Host beim root-Nutzer auf "%" setzt. Dann kann man von jedem Rechner zugreifen. Bedenke allerdings, daß ggf. auch aus dem Internet mit root-Rechten auf deinen MySQL zugegriffen werden kann.

Ja, ganau! Das hat mein Kumpel auch gesagt. Ich poste mal ein Screen, wie ich es geändert habe, vielleicht hilft es ja weiter.

Bild
 
Steht ja eine ganze Menge drin.
%/root und %/blub schließen alle anderen Einträge für die Nutzer root und blub ein. Daher sind andere Einträge für root und blub überflüssig.

Mit dem root-Nutzer müsstest du dich jetzt verbinden können. Ebenso mit dem Nutzer blub. Wenn du explizit einem Nutzer nur von deinem "blub-Rechner" Zugriff gewähren willst, müsstest du bei Host "blub" eintragen.

In der MySQL-Dokumentation findet sich auch ein Beispiel
 
pvc-junkie schrieb:
Steht ja eine ganze Menge drin.
%/root und %/blub schließen alle anderen Einträge für die Nutzer root und blub ein. Daher sind andere Einträge für root und blub überflüssig.

Mit dem root-Nutzer müsstest du dich jetzt verbinden können. Ebenso mit dem Nutzer blub. Wenn du explizit einem Nutzer nur von deinem "blub-Rechner" Zugriff gewähren willst, müsstest du bei Host "blub" eintragen.

In der MySQL-Dokumentation findet sich auch ein Beispiel

Okay, also ich hab jetzt den anderen Code von der Beispielseite verwendet:
Code:
            MySql.Data.MySqlClient.MySqlConnection conn;
            string myConnectionString;

            myConnectionString = "server=192.168.2.37;uid=root;" +
                "pwd=123454abcd;database=sprache;";

            try
            {
                conn = new MySql.Data.MySqlClient.MySqlConnection();
                conn.ConnectionString = myConnectionString;
                conn.Open();
                textBox6.Text = "Verbindung erfolgreich";
            }
            catch (MySql.Data.MySqlClient.MySqlException ex)
            {
                MessageBox.Show(ex.Message);
            }

Das Interessante ist aber, wenn ich einmal den Benutzer "blub" verwendet kommt diese Fehlermeldung:
Access denied for user 'blub'@'%' to database 'sprache'
Und bei "root":
Access denied for user 'root'@'BLUB' (using password: YES)

Sollte ich vielleicht die übrig genannten entfernen, wo du meinste die seien überflüssig?

Ohman, mein Lehrer killt mich, wenn ich es bis morgen nicht habe. : D (Zum Glück ist er witzig drauf)
; )

lg
 
Hast du eventuell die Rechte für den Nutzer "blub" auf die Datenbank "Sprache" beschränkt?

Klick mal in phpMyAdmin auf die Datenbank "Sprache", dann oben rechts auf "Rechte", dann "Rechte ändern" für den Nutzer blub und dann steht in der Mitte "Datenbankspezifische Rechte", falls da etwas drin stehen sollte, vielleicht mal entfernen.
 
Zurück
Oben