Backup Script Fehler

Artistee

New Member
Hallo,
Ich benutze eine Backup Script um ganze Datenbanken zu sichern, auf meine alte Server Strato lief das ganz gut, bei der Hetzner gibt's eine Problem mit mysqlshow rechte.

Wen ich das Script über SSH Manuel ausführen möchte bekomme ich einen Fehler Meldung.


Code:
/usr/bin/mysqlshow: Access denied for user 'admin'@'localhost' (using password: YES)

Wie kann ich dieses Problem umgehen.
Danke
 
Ich hab zwar nicht so die Ahnung von MySQL aber dort steht, dass der User admin ein PW hat. Du müsstest wenn schon mit deinem Script das PW übergeben.

Also "mysqlshow -u admin -ppassword".
Schau am besten mal in den Manpages von mysqlshow nach.
 
Das Script hat eine .my.cnf in dem die Passwörter stehen.

Hier die komplette Script.
Code:
#!/bin/bash
# Datum
NOW=`date +%a-%d-%m-%Y`
BACKUPDIR=/root/sqlbackup

DEBUG="NO";     # YES oder NO
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin;
if [ ! -f "/root/.my.cnf" ]
then
       echo "Kann die Datei /root/.my.cnf nicht finden!"
        exit;
fi
# Mussl C sein
export LANG=C
export LC_CTYPE="C"
export LC_NUMERIC="C"
export LC_TIME="C"
export LC_COLLATE="C"
export LC_MONETARY="C"
export LC_MESSAGES="C"
export LC_PAPER="C"
export LC_NAME="C"
export LC_ADDRESS="C"
export LC_TELEPHONE="C"
export LC_MEASUREMENT="C"
export LC_IDENTIFICATION="C"
export LC_ALL=

# CONFIGURATION SECTION
if [ "c$1" = "c-d" ]
then
	echo "Debugmode ist an"
	DEBUG='YES'
else
	DEBUG="${DEBUG}"
fi

function debug ()
{
if [ $DEBUG = "YES" ]
then
   # Parameter $1 auswerten
   echo -e "Debug: $1\n"
fi
}

if [ ! -d "$BACKUPDIR" ]
then
	debug "Erstelle Backupverzeichniss ${BACKUPDIR}"
	mkdir -p $BACKUPDIR
fi
#Datenbankname Datumsteil als Wochentag
DATUM=$(date +%a);

debug "Alle MySQL-Datenbanken sichern:"
# Bereinigte Liste der Datenbanken erzeugen
cd $BACKUPDIR || exit 1;
/usr/bin/mysqlshow | awk '{print $2}' | grep -v Databases | sort >./dbaselist

for x in `cat ./dbaselist`; do
    debug "Datenbank: $x sichern";
    /usr/bin/mysqldump --opt ${x} > ${BACKUPDIR}/${x}_${DATUM}.sql;
    debug "${x}_${DATUM}.sql.tar.gz erstellen"
    /bin/tar -czf ${BACKUPDIR}/${x}_${DATUM}.sql.tar.gz ${x}_${DATUM}.sql -C $BACKUPDIR;
    debug "Lösche ${x}_${DATUM}.sql";
    rm -f ${BACKUPDIR}/${x}_${DATUM}.sql;

done;
rm -f ./dbaselist
 
Hast Du in der my.cnf einen Abschnitt für "[myslqlshow]" (oder "[client]") mit "user" und "password"?
 
Last edited by a moderator:
Ja das sieht so aus,

Code:
[client]
user=admin
password='xxxxxx'

[mysqladmin]
user=admin
password='xxxxxx'

[mysqlcheck]
user=admin
password='xxxxxx'

[mysql]
user=admin
password='xxxxxx'

Mit Freundlichen grüßen
 
Und wie klappt es mit
Code:
mysql --user=admin --password=xxxxxx -e 'show databases;'

BTW gehört sich das so mit den Hochkommatas in Deiner ~/.my.cnf?

[EDIT]

Argh! ;)

Heute ist wohl ein Tag zum dazulernen. Anführungszeichen werden wohl echt aktzepiert.
 
Last edited by a moderator:
Und wie klappt es mit
Code:
mysql --user=admin --password=xxxxxx -e 'show databases;'

BTW gehört sich das so mit den Hochkommatas in Deiner ~/.my.cnf?

[EDIT]

Argh! ;)

Heute ist wohl ein Tag zum dazulernen. Anführungszeichen werden wohl echt aktzepiert.

Hochkommatas? meinstdu die xxx, das sind nur beispiele, dort steht Pass von Plesk Admin.

Wieder eine Fehler,
Code:
 # mysql --user=admin --password=xxxxx -e 'show databases;'
ERROR 1045 (28000): Access denied for user 'admin'@'localhost' (using password: YES)
 
Ich kann sehr auf einem Plesk-System mit
mysqlshow -uadmin -p`cat /etc/psa/.psa.shadow`
zugreifen.
Mir zeigt es die Datenbanken an.
 
Wie das?

1. Welche Rechte hat denn überhaupt die ~/.my.cnf?
2. Unter welchem User wird dein Skript ausgeführt?
 
Hmm, die Rechte sind ok.

Ich kann jedenfalls auch mit einer .my.cnf in der ein Abschnitt [mysqlshow] existiert, mit dem User admin und dem korrekten Passwort eingetragen, so ein Skript aufrufen:

Code:
#!/bin/bash

mysqlshow
 
Irgendwie funktioniert das bei Hetzner nicht, ich habe vorhin bei Strato Server ohne Probleme installiert.
Das ist komisch.
 
Also es klappt bei dir auch nicht mit mysql oder mysqlshow in der Shell.

Bist du sicher, dass du das richtige Passwort für den User admin nimmst?
 
Irgendwie funktioniert das bei Hetzner nicht, ich habe vorhin bei Strato Server ohne Probleme installiert.
Das ist komisch.
Irgendwie? Wo? Pauschal kann ich dem nicht so zustimmen.

Auf meinem Rootserver bei Hetzner klappt das.

Bitte schreibe mal mehr zu deinem System:
Welcher Server?
Welches Plesk?
 
Admin Pass ist ok, sonst könnte ich bei Plesk auch nicht anmelden.
Ich habe auch eine neu Root EX Server bei Hetzner, hier funktioniert das einfach nicht.

Ich habe eine andere Script Probiert das selbe Probleme.

Script
Code:
#!/bin/bash
USER=root
PASSWD='pass'
# Datum
NOW=`date +%a-%d-%m-%Y`
BACKUPDIR=/root/sqlbackup

echo "Alle MySQL-Datenbanken sichern:"
# Bereinigte Liste der Datenbanken erzeugen
/usr/bin/mysqlshow -u$USER -p$PASSWD | awk '{print $2}' | grep -v Databases | sort >./dbaselist

if [ -d $BACKUPDIR ]; then
mkdir -p $BACKUPDIR
fi

for x in `cat ./dbaselist`; do
    echo "Datenbank: $x sichern";
    /usr/bin/mysqldump --opt -u$USER -p$PASSWD $x > $BACKUPDIR/$x.sql;
    cd $BACKUPDIR || exit 1
    echo "$x.sql.tar.gz erstellen"
    tar -czf $BACKUPDIR/$x.sql.tar.gz $BACKUPDIR/$x.sql -C $BACKUPDIR;

done;

Fehler
Code:
Alle MySQL-Datenbanken sichern:
/usr/bin/mysqlshow: Access denied for user 'root'@'localhost' (using password: YES)

Linux - Debian6 - Plesk 10

Mit freundlichen grüsen
 
Das Pleskpasswort für das Login ins Pleskpanel ist nicht dasselbe wie für MySQL!
Kann so nicht gehen!

Siehe auch:

;)

Das Passwort für MySQL steht doch in /etc/psa/.psa.shadow
 
Last edited by a moderator:
Hmm
MYSQL Pass von dem ganzen Datenbanken oder wie?
Wieso funktioniert den das mit dem Test Server, dort ist auch das selbe Script und selbe einstellung.
 
Back
Top