C# Kann nicht auf MySql DB (phpMyAdmin) zugreifen?
Ich wollte ein C# Programm schreiben um meine MySql Datenbank zu testen.
Das Programm soll sich mit der DB verbinden und die Datenbank Einträge in eine DataGridView eintragen. Den Code habe ich von hier: https://www.youtube.com/watch?v=SZqIjaizkTM&ab_channel=mhluc%23 (habe ihn aber ein bisschen verändert)
Ich komme jedoch nicht in die Datenbank rein.
Es gibt Probleme bei dem Connection.OpenAsync()
Hier die Exception:
MySql.Data.MySqlClient.MySqlException
HResult=0x80004005
Nachricht = Unable to connect to any of the specified MySQL hosts.
Quelle = MySql.Data
Stapelüberwachung:
at MySql.Data.MySqlClient.NativeDriver.Open()
at MySql.Data.MySqlClient.Driver.Open()
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
at MySql.Data.MySqlClient.MySqlPool.GetConnection()
at MySql.Data.MySqlClient.MySqlConnection.Open()
at System.Data.Common.DbConnection.OpenAsync(CancellationToken cancellationToken)
--- End of stack trace from previous location ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at VoidRaiderDB_Browser.MainWindow.<MenuStripItemClicked>d__3.MoveNext() in D:\Projects\VoidRaiderDB Browser\VoidRaiderDB Browser\MainWindow.cs:line 31
Diese Ausnahme wurde ursprünglich von dieser Aufrufliste ausgelöst:
[Externer Code]
Innere Ausnahme 1:
AggregateException: One or more errors occurred. (Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.)
Innere Ausnahme 2:
SocketException: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.
glaube ich habe beim Connection String verkackt aber habe keine Ahnung was ich falsch gemacht habe..
Das Passwort/User-Name ist richtig da ich mit den auch in die phpMyAdmin Seite reinkomme
1 Antwort
Aufgrund deiner gegebenen Hostadresse wäre zu hinterfragen, wo denn deine Datenbank liegt und wo deine Anwendung, die du auszuführen versuchst.
a) Wenn die Datenbank auf deinem Rechner ist (sowie deine Anwendung), hast du eine falsche Hostadresse angegeben. Dort sollte localhost stehen, evt. wäre noch die Angabe eines Ports sinnvoll / notwendig.
b) Sollte deine Datenbank auf einem (für die Anwendung) fremden Server liegen, wird der Verbindungsversuch durch die Firewall des angefragten Servers blockiert.
Problem ist: Wenn dein Apache auf allen Interfaces lauscht, dann klappt das natürlich, dass du die private IP des Rechners nimmst, statt dem Loopback.
In der Grundconfig läuft aber ein MySQL Server gebunden an 127.0.0.1 und akzeptiert keine Verbindungen an die private IP.
Ich würde mal schauen, mit welchen verbindungsdaten sich dein PHPMyAdmin an die DB anmeldet und dann die selben nehmen.
Ich vermute mal, dass der Port 3306 an deinem Rasbi nicht offen ist.
Probiere es mal mit der Workbench von deinem PC aus, dich zur DB zu verbinden.
ich hoste einen apache server auf meinem raspberry pi und die ip funktioniert. also ich komme mit der ip in phpmyadmin rein. ich nutze den Standard port (3306)