Laden...

MySQLO Connect Problem

Erstellt von stargazer vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.984 Views
S
stargazer Themenstarter:in
24 Beiträge seit 2006
vor 17 Jahren
MySQLO Connect Problem

Hallo Zusammen! Ich habe ein kleines Problem beim Connect zu einer MySQL Datenbank. Ich benutze den MySQL Connector und habe folgenden Code aus dem mitgelieferten Beispiel entnommen:


private void buttonLogin_Click(object sender, EventArgs e)
{

this.toolStripProgressBar1.PerformStep();
string connStr = String.Format("server={0};user id={1}; password={2}; database=travelorg; pooling=false",
"www.xyz.net", "xyz", "xyz";);

try
{
conn = new MySqlConnection(connStr);
conn.Open();


}
catch (MySqlException ex)
{
MessageBox.Show("Error connecting to the server: " + ex.Message);
}
conn.Close();
Close();
}

Wenn ich zum Localhost connecte funktioniert alles wunderbar. Da funktioniert auch das Beispiel vom MySQL Connector. Wenn ich aber versuche meine Datenbank auf dem Server im Internet zu connecten kommt folgende Fehlermeldung.

Hat jemand einen Tip? Danke schon mal im Vorraus!

B
249 Beiträge seit 2005
vor 17 Jahren

Normalerweise ist es so, dass der Zugriff von aussen auf eine Datenbank nicht zugelassen. Bist du sicher, dass deine Datenbankzugänglich ist?, ist die Datenbank von dir eingerichtet worden, oder bist du bei einem Hostingservice?

S
stargazer Themenstarter:in
24 Beiträge seit 2006
vor 17 Jahren

Na ja, ganz sich er bin ich mir nicht. Ich hab die DB schon bei einem Provider, doch ich hab noch eine andere MySQL DB auf einer anderen Domain und dort ist der Zugriff gesperrt. Dabei bringt er aber eine andere Fehlermeldung:

'HY000Host 'ServerName' is not allowed to connect to this MySQL Server

-
885 Beiträge seit 2004
vor 17 Jahren

Oh man Leute! Benutzt doch mal die Suche! Erst gestern Nacht habe ich nen Thema beantwortet:

MySQL Anleitung?

Das funktioniert, auch mit ext. Datenbanken zb. im Internet.

P.S.: Deine Datenbank muss für ext. Zugriff freigeschaltet sein.

S
stargazer Themenstarter:in
24 Beiträge seit 2006
vor 17 Jahren

🙂...erst mal motzen. Ich hab deinen Artkel gelesen, und wenn du dir meinen Code anschaust, dann wirst du feststellen, dass er, abgesehen von der Verschachtelung der Variablen für den Serverzugang, auch fast gleich ist...
Es war aber nicht meine Frage, wie das generell geht, sondern ob jemand eine Idee hat, woran es liegt, das diese Fehlermeldung kommt. Denn zum localhost kann ich ja connecten und wenn die Connection gar nicht erlaubt ist, dann kommt auch eine andere Meldung.

Also bitte erst lesen, dann motzen...

-
885 Beiträge seit 2004
vor 17 Jahren

Ich habe sehr wohl gelesen und auch gesagt, woran dein Problem liegt!

A
77 Beiträge seit 2005
vor 17 Jahren

Die erste Fehlermeldung ("Eine Anforderung zum Senden oder Empfangen von Daten wurde verhindert, ...") sagt im Gegensatz zu der zweiten ("'HY000Host 'ServerName' is not allowed to connect to this MySQL Server") nichts darüber aus, ob der Server für externen Zugriff konfiguriert ist oder nicht.

Es kam schlicht und ergreifend keine Verbindung zum Server zustande, die möglichen Ursachen:*Der Server war down *Die URL/IP im connenction-string war falsch geschrieben *Eine Firewall verhindert die Verbindung

-
885 Beiträge seit 2004
vor 17 Jahren

Nochmal: Wenn er meine Klasse benutzt, hat er ein funktionierendes Programm. Sollte der ext. Zugriff möglich sein, muss es funktionieren. Die Firewall kann man übrigens ausschließen, da ich davobn ausgehe, dass der Großteil der FWs den HTTP-Port offen hält. Des Weiteren kann ich einfach mit nem Ping testen, ob der Server down oder up ist. Ist aber in der Regel auch auszuschließen.

Das Einzige was mir noch einfällt und bei muir zum Fehler führte:
Wie lautet denn deine URI zum Server?

M
2 Beiträge seit 2006
vor 17 Jahren

Ich hatte das selbe Problem .. ich hab dabei den MySql-Server auch für externen Zugriff konfiguriert. Das heisst zumindest dachte ich das. Ich hatte nämlich vergessen, dass der mysqld standardmässig so konfiguriert ist, dass er nur auf dem lokalen Interface auf Verbindungen wartet.
Du solltest also mal mit einem Portscanner überprüfen, ob der Port auch wirklich offen ist.

S
stargazer Themenstarter:in
24 Beiträge seit 2006
vor 17 Jahren

Das Problem ist gelöst. Ich habe bei meinem Provider angerufen und nachgefragt. Es ist tatsächlich so, dass diese Fehlermeldung

'HY000Host 'ServerName' is not allowed to connect to this MySQL Server

daher rührt, dass der connect generell nicht erlaubt wird.

Meine andere Fehlermeldung kam aber tatsächlich daher, dass der MySQL Server hinter einer Firewall lag und der connect Port 3306 ist, welcher zu war.