MySQL - Verbindung wird nicht hergestellt

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Abend,


    ich habe mich an MrMonatHD bei der MySQL Geschichte orientiert. Das Problem ist bei mir, dass scheinbar keine Verbindung zur Datenbank hergestellt wird.
    Wenn ich mich mit dem Server verbinde wird "OnUserCheck" nicht aufgerufen bzw es erscheint keine Meldung in der Konsole.


    Die Version des MySQL Plugins ist R39-3. Ich kann das Problem einfach nicht ausfindig machen. Crashdetect sagt "OK".


    Script


    // Includes
    #include <a_samp>
    #include <a_mysql>

    Script
    // MySQL
    forward OnUserCheck(playerid);
    new dbhandle;
    #define db_host "127.0.0.1"
    #define db_user "samp"
    #define db_pass "mysqlpasswort"
    #define db_db "dystopia"

    Script
    new PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];

    Script
    main()
    {

    Script
    }

    Script
    public OnGameModeInit()
    {
    SetGameModeText("Blank Script");

    Script
    dbhandle = mysql_connect(db_host, db_user, db_db, db_pass);

    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
    }

    Script
    public OnGameModeExit()
    {
    mysql_close(dbhandle);
    return 1;
    }

    Script
    public OnUserCheck(playerid)
    {
    print("ein User hat sich verbunden");
    return 1;
    }

    Script
    public OnPlayerConnect(playerid)
    {
    GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
    PlayerInfo[playerid][loggedin] = 0;

    // Login/Register
    new query[128];

    format(query, sizeof(query), "SELECT id FROM user WHERE name='%s'", PlayerName[playerid]);
    mysql_function_query(dbhandle, query, true, "OnUserCheck", "i", playerid);
    return 1;
    }



    Ich bedanke mich schon mal für Eure Hilfe!

  • Nimm den root Benutzer ohne Passwort:
    #define db_host "127.0.0.1"
    #define db_user "root"
    #define db_pass ""
    #define db_db "dystopia"


    Das ist in 99% aller Fälle standardmäßig so eingestellt.
    Dein user "samp" wird nicht die richtigen Berechtigungen haben, das ist auf localhost (dein Rechner) so eingestellt, standardmäßig zumindest.
    Deshalb benutze, wie ich oben geschrieben habe, den root - User ohne Passwort, der hat ALLE Berechtigungen. Dem kannst du später auch, je nach Client, ein Passwort geben.

  • Danke für die schnelle Antwort! Es funktioniert nunmit "root" als Benutzer, Danke dafür.



    Dein user "samp" wird nicht die richtigen Berechtigungen haben, das ist auf localhost (dein Rechner) so eingestellt, standardmäßig zumindest.


    Heißt das, dass der Benutzer "root" mehr/andere Rechte hat, als der Benutzer "samp", obwohl ich dort beim Erstellen des Benutzers ALLE Rechte zugewiesen/angekreuzt habe?

  • Heißt das, dass der Benutzer "root" mehr/andere Rechte hat, als der Benutzer "samp", obwohl ich dort beim Erstellen des Benutzers ALLE Rechte zugewiesen/angekreuzt habe?


    Ja, genau.


    Das Problem haben aber viele, von daher ist das normal. Letztendlich ist es ja egal wie der User heißt, wenn du es eh nur lokal verwendest.