verschiedene user roots für mysql und mysqladmin?

  • Hallo Leute,

    für mein Projekt einer Wettermessstation (WS2500) installiere ich gerade verschiedene Programme auf meinem RaspberryPi+. Nach ein paar Anläufen habe ich jetzt den RbP+ endlich im LAN und Verbindungen via SSH, VNC und SFTP eingerichtet. Für die eigentliche Wettermessstation habe ich verschiedene benötigte Programme installiert: gnuplot, den Webserver Apache2 (It work's), die Datenbank MySQL, sowie phpmyadmin. Das funktioniert soweit. Ich komme auch als root in die Datenbank hinein (siehe spoiler). :)

    Spoiler anzeigen


    pi@raspberrypi ~ $ mysql -V
    mysql Ver 14.14 Distrib 5.5.40, for debian-linux-gnu (armv7l) using readline 6.2
    pi@raspberrypi ~ $ mysql -u "root" -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 61
    Server version: 5.5.40-0+wheezy1 (Debian)
    Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    mysql> quit
    Bye
    pi@raspberrypi ~ $

    Jetzt der nächste Schritt:
    Ich habe ein Script "runinstall" für die Wetterstation das mir die Einrichtung der Station softwareseitig weitestgehend abnimmt. Das Script ist alt aber ich habe es 2005 schon mal auf einem SuSE-System zum Laufen gebracht. Es legt Verzeichnisse an, speichert verschiedene weitere Scripte ab usw. Dann fragt es auch das Administratorpasswort für die MySQL-Datenbank ab um sich in die DB einzuloggen und verschieden Tabellen usw. anzulegen.

    Dabei bricht es mit folgender Meldung ab:

    Code
    Now I try to setup the database .....
    Testing if MYSQl server is alive and if root access works ...
    Database admin has no password. Setting the user specified
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user 'root'@'localhost' (using password: NO)'
    Password could not be set. Stop.

    Ich habe einen Administrator nämlich root für die Datenbank und er hat ein Passwort und ich komme damit rein (siehe Spoiler oben), übrigens auch über einen Browser im LAN mittels phpmyadmin.
    Also habe ich mal in das Script geschaut was das so macht:

    Das Schript versucht mit dem Befehl mysqladmin in die Datenbank zu kommen. Ich habe die manpage gelesen, verstehe aber nicht wieso das Script nicht mit mysql arbeitet sondern mit mysqladmin! :s

    Wenn ich den Befehl selber eintippe, passiert auf der Konsole folgendes:

    Code
    pi@raspberrypi ~ $ mysqladmin -u root -h "localhost" ping
    mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user 'root'@'localhost' (using passwort: NO)'
    pi@raspberrypi ~ $

    Also die Datenbank ist am Laufen, okay. Der root kommt aber nicht rein weil er kein Passwort braucht? Ist der root für mysqladmin ein anderer als der root für mysql?

    Also was mache ich falsch, bzw. was muss ich tun, damit das script durchläuft?


    Viele Grüße
    Clint

  • verschiedene user roots für mysql und mysqladmin?? Schau mal ob du hier fündig wirst!

    • Offizieller Beitrag
    Zitat

    error: 'Access denied for user 'root'@'localhost' (using passwort: NO)'

    Wenn du ein passwort gesetzt hast und versuchst ohne Passwort drauf zuzugreifen klappt das natürlich nicht. Was passiert denn bei

    Code
    mysqladmin -u root -p -h "localhost" ping
  • Hi,

    jetzt habe ich ebenfalls nochmal den exakten(!) Befehlswortlaut aus dem Script eingetippt:

    mysqladmin -u root -h "localhost" password "dks297"

    Das Script erhält hier offensichtlich ebenfalls die Meldung Error: Access denied for user root@localhost (using passwort: NO)

    Und dann bricht es ab.

    Gruß
    Clint


    aber das ist doch gut. Denn genau das macht der Befehl und die Verbindung hat geklappt.

    Okay ja aber das Script kommt genau hier:

    Code
    $MYSQLADMIN -u root -h "$MYSQLHOST" ping > /dev/null 2>&1
    if [ $? = "0" ]; then
        echo "Database admin has no password. Setting the user specified"
        $MYSQLADMIN -u root -h "$MYSQLHOST" password "$DBADMINPW"
        if [ $? != "0" ]; then
            echo "Password could not be set. Stop."
            exit 1

    zu einem anderen Ergebnis weshalb es dann nicht weitergeht. Ich versuche rauszufinden warum?

    Gruß
    Siegfried

    Einmal editiert, zuletzt von Clint (17. Dezember 2014 um 23:04)

    • Offizieller Beitrag

    ich tippe auf nen syntaxfehler im Script also entweder

    Code
    mysqladmin -u root -h "localhost" --password "dks297"


    oder

    Code
    mysqladmin -u root -h "localhost" -p "dks297"


    was mich viel mehr wundert warum er "Database admin has no password. Setting the user specified" ausgibt obwohl der rückgabewert eindeutig nicht 0 sein kann :denker:

  • Hi,

    ich habe ebend beide Versionen durchprobiert, indem ich das script abgeändert habe:

    Bei der Version mit --password "dks297"
    erkennt er das Passwort als unknwon command

    und bei der Version mit -p
    läuft er mit der eingangs beschriebenen Fehleremeldug durch und stoppt dann.

    Ich verstehe nicht warum er überhaupt mysqadmin benutzt und nicht mysql? Oder muss ich für mysqladmin das root-password vorher von Hand einrichten?

    Grüße
    Clint

    • Offizieller Beitrag

    Lesen hilft ;) , bei mysqladmin ist die syntax wie im Script geschrieben korrekt (ach wie schön konsistent doch die Befehle sind xD). Ist das das ganze Script? Irgendwie fehlt mir zum Beispiel wo er $DBADMINPW deklariert.
    Und warum mysqladmin? weil man damit z.B. ganz einfach ne DB erstellen, löschen kann ohne sich in SQL-Syntax zu verlieren ;)

  • Hallo zusammen,

    Ja genau:


    Lesen hilft ;) ,

    Deshalb nochmal genau in das Sript geschaut und nach einer aktualisierten Version gesucht. Ich hatte Version 0.85, inzwischen gibt es Version 1.19. Diese fäht über das von mir beschriebene Problem hinweg und meldet "Access to MYSQL server is OK".

    Und ne, es ist nicht das Ganze Script, das hat 718 Zeilen, die wollte ich jetzt nicht posten, Man findet das komplette Paket unter: http://userpages.uni-koblenz.de/~krienke/ftp/unix/ws2500/ in der Version 1.19 das runinstall suchen.

    Die Passwörter und user werden vor der von mir geposteten Stelle abgefragt.

    Jetzt hängt das Script an der Stelle:

    Code
    $BASEDIR/$BINDIR/ws2500tomysql -c -d "DBNAME"

    und meldet: "Keine Berechtigung"
    Mal schauen woran das nun wieder liegt... ich schaue mal in das scrpt ws2500tomysql was da die Parameter c und d bewirken.:s

    Und in phpmyadmin suche ich mal die angelegten user und ihre Berechtigungen raus.

    Grüße
    Siegfried

  • Hallo zusammen,

    leider funktioniert es mit sudo ./runinstall auch nicht. jetzt muss ich noch mal in Ruhe alles durchproberen und aufschreiben was genau passiert, sonst kann ich hier auch keine klare FRage stellen, gell?:blush:

    Grüße
    Siegfried

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!