Guten Abend!
Ich werde langsam verrückt und bin der Meinung, dass
hier irgend etwas mit den MySQL Plugins nicht stimmt.
Installation von MySQL
- MySQL in den Server eingebunden
- blankes Script wird verwendet
- mysql_connect() Funktion bei OnGameModeInit() eingefügt
- mysql_ping() Abfrage, ob die Verbindung aktiv ist
stock MySQL_Build(host[], user[], pw[], db[])
{
MySQL_Handle = mysql_connect(host, user, db, pw);
}
public OnGameModeInit()
{
print("[MySQL] Die Verbindung zur Datenbank wird hergestellt...\n");
MySQL_Build(MySQL_Host, MySQL_User, MySQL_Pw, MySQL_Db);
mysql_debug(true);
if(mysql_ping(MySQL_Handle)) print("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt.\n");
else
{
print("[MySQL] Beim Verbinden zur Datenbank ist ein Problem aufgetreten.");
print("[MySQL] Es wird versucht sich erneut zur Datenbank zu verbinden.\n");
MySQL_Build(MySQL_Host, MySQL_User, MySQL_Pw, MySQL_Db);
if(mysql_ping(MySQL_Handle)) print("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt.\n");
else
{
print("[MySQL] Eine Verbindung zur Datenbank ist nicht möglich.\n");
mysql_close(MySQL_Handle);
}
}
return 1;
}
Sind alle Variablen MySQL_Host, ..._User usw. deklariert und stimmen
mit den Zugangsdaten überein, die über MySQL erstellt wurden, liefert
die MySQL-Log Datei einen erfolgreichen Verbindungsaufbau.
[23:12:32] >> mysql_connect(127.0.0.1, server_gta, server_gta, ******) on port 3306
[23:12:32] CMySQLHandler::CMySQLHandler() - constructor called.
[23:12:32] CMySQLHandler::CMySQLHandler() - Connecting to "127.0.0.1" | DB: "server_gta" | Username: "server_gta"
[23:12:32] CMySQLHandler::Connect() - Connection was successful.
[23:12:32] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
[23:12:32]
[23:12:32] ** MySQL Debugging enabled (09/23/12)
[23:12:32]
[23:12:32] >> mysql_ping( Connection handle: 1 )
[23:12:32] CMySQLHandler::Ping() - Connection is still alive.
Saputiere ich jetzt die deklarierten Variablen und ändere den
MySQL User beispielsweise von server_gta zu server_gta2,
liefert mir die Log, dass eine Verbindung nicht möglich ist.
[23:16:02] >> mysql_connect(127.0.0.1, server_gta2, server_gta, ******) on port 3306
[23:16:02] CMySQLHandler::CMySQLHandler() - constructor called.
[23:16:02] CMySQLHandler::CMySQLHandler() - Connecting to "127.0.0.1" | DB: "server_gta" | Username: "server_gta2"
[23:16:02] CMySQLHandler::Connect() - Access denied for user 'server_gta2'@'localhost' (using password: YES) (Error ID: 1045)
[23:16:02]
[23:16:02] ** MySQL Debugging enabled (09/23/12)
[23:16:02]
[23:16:02] >> mysql_ping( Connection handle: 1 )
[23:16:02] CMySQLHandler::Ping() - You cannot call this function now. (Reason: Dead Connection)
Doch weiterhin besteht das Problem, dass die Server-Log Einträge
immernoch anzeigen, dass eine Verbindung erfolgreich hergestellt wurde.
Die Funktionen dazu findet ihr ja oben...
D.h. im Klartext, dass die Funktion mysql_ping() nicht korrekt arbeitet.
Saputiere ich die Funktion und ändere die Anweisung von
if(mysql_ping(MySQL_Handle))
zu
if(!mysql_ping(MySQL_Handle))
... kann niemals eine Verbindung hergestellt werden.
Egal ob die Verbindungsdeklarationen, also Host, Name usw. korrekt sind.
Wo liegt also nun das Problem?
Ich komme an dieser Stelle nicht weiter.
Noch einen Hinweis dazu möchte ich allerdings geben:
GENAU der selbe Fehler tritt bei dem Plugin von BlueG auf, als
auch bei dem Plugin von StrikenKid, was darauf deutet, dass
bei beiden die Funktion mysql_ping() nicht korrekt arbeitet
oder ich einen Fehler tätige.
Ich bitte dringlichst um Hilfe!
Egal ob Foren-Administrator, User usw...
TeamViewer, Teamspeak, ICQ, usw. ist vorhanden zu besseren Kommunikation.