Timur: SSH MYSQLDUMP

Hallo,

da bin ich wieder. Ich versuche gerade über PUTTY mit mysqldump meine Datenbanken zu sichern.

Nur das Problem ist mit der Verbindung zur Datenbank. Irgendwie klappt es nicht, folgendes habe ich immerwieder probiert.

mysqldump -u USER -p PWD table > backup.sql
mysqldump -h HOSTNAME -u USER -p PWD table > backup.sql
mysqldump -h HOSTNAME -u USER -p table > backup.sql

mysqldump --user=USER --password=PWD table > backup.sql
mysqldump --host=HOSTNAME --user=USER --password=PWD table > backup.sql
mysqldump --host=HOSTNAME --user=USER --password table > backup.sql

Leider klappt gar nichts von oben. Es kommt immer die Fehlermeldung:
Got error: 1045: Access denied for user: '...'

Ich bin jetzt auch total verwirrt. Ich weiß jetzt gar nicht was man mit dem host, user oder password gemeint ist? Muss ich da die gleichen Eingaben machen, so wie ich mich bei PUTTY angemeldet habe (da wird ja auch nach host, user und pwd gefragt) oder den Benutzername der Datenbank und das Passwort für die Datenbank? Host wäre ja der von meinem Provider?

Wie gesagt ich habe alles versucht aber irgendwie kommt die blöde Fehlermeldung.

Viele Grüße
Timur

  1. Hello,

    mysqldump --host=HOSTNAME --user=USER --password table > backup.sql

    du gibst hier dem MySQL-Dump an mit welchen Einstellungen es den MySQL-Server erreicht. Der HOSTNAME legt dabei fest, WELCHEN MySQL-Server du meinst. Bei vielen Providern ist hier "localhost" die Angabe der Wahl. Alternativ schau mal bei deinem PHPMyAdmin oder in deinen Skripten nach, diese fordern die selben Einstellungen. Gleiches gilt für Benutzer und Passwort, es geht um die Datenbank.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Don't lick your wounds: celebrate them. The scars you bear are the signs of a competitor.  --  character Richard Webber on Grey's Anatomy: 'Where the wild things are'
    1. Hallo,

      genau die einstellungen habe ich auch zuerst eingegeben. aber da hat es mir immer den fehler mit dem acces denied ausgegeben.

      woran könnte es denn noch liegen?

      gruß
      timur

      1. Hallo Rouven,

        ich hatte die ganze Zeit einen Tippfehler gehabt.

        wie macht man das eigentlich, wenn man fortlaufenden backups möchte?
        Zum Beispiel will ich, heute, morgen ... die nächsten paar Tage Backups machen. Dabei würde ich gerne die Dateinamen in etwa so haben:

        backup29032009_2215
        backup30032009_2215
        backup31032009_2215
        backup01042009_2215

        Das Skript kann ich mit einem CronJob jeden Tag um 22:15 Uhr starten, aber was ich nicht weiß wie ich die Dateinamen genauso benennen kann. Ich will nicht immer die gleiche Datei überschreiben.

        Viele Grüße
        Timur

        1. [latex]Mae  govannen![/latex]

          Zum Beispiel will ich, heute, morgen ... die nächsten paar Tage Backups machen. Dabei würde ich gerne die Dateinamen in etwa so haben:

          backup29032009_2215
          backup30032009_2215
          backup31032009_2215
          backup01042009_2215

          Besser:
          backup20090329_2215
          backup20090330_2215
          backup20090331_2215
          backup20090401_2215

          dann klappt's auch mit der chronologischen Sortierung.

          Cü,

          Kai

          --
          „It's 106 miles to Chicago, we got a full tank of gas, half a pack of cigarettes, it's dark, and we're wearing sunglasses“.
          „Hit it!“
          Selfzeugs
          SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
          1. Hallo,

            Besser:
            backup20090329_2215
            backup20090330_2215
            backup20090331_2215
            backup20090401_2215

            ja ok, aber was muss an den backup anhängen damit es klappt?

            Gruß
            Timur

            1. Hi Timur,

              ja ok, aber was muss an den backup anhängen damit es klappt?

              Einen entsprechenden Ausdruck, der das gewünschte Datum erzeugt, das dürfte am einfachsten mit date gehen, siehe man date.

              #!/bin/bash  
                
              FILE=/home/myuser/backup/backup-`date +%Y%m%d-%H%M`.sql.gz  
              /usr/bin/mysqldump --user=mysqluser --password=mysqlpassword databasename | gzip > $FILE  
                
              OLDFILE=/home/myuser/backup/backup-`date -d "30 days ago" +%Y%m%d-%H%M`.sql.gz  
              if [ -f $OLDFILE ]; then  
                rm $OLDFILE  
              fi
              

              So sieht das z.B. bei mir aus. Löscht dann der Bequemlichkeit halber direkt noch das 30-Tage alte Backup, sofern dieses vorhanden ist. Muss dafür halt nur täglich zur selben Uhrzeit laufen, also z.B. mit folgendem Crontab-Eintrag:

              m h  dom mon dow   command

              53 23  *   *   *     /home/myuser/bin/make-backup.sh

              Viele Grüße,
                ~ Dennis.

      2. Hallo,

        genau die einstellungen habe ich auch zuerst eingegeben. aber da hat es mir immer den fehler mit dem acces denied ausgegeben.

        woran könnte es denn noch liegen?

        Wenn "access denied" kommt, heißt das noch lange nicht, dass der Hostname stimmt. Es könnte also liegen an:

        hostname, benutzername, passwort.

        Hotte

        --
        Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  2. echo $begrüßung;

    da bin ich wieder. Ich versuche gerade über PUTTY mit mysqldump meine Datenbanken zu sichern.

    Eine Kennung unter MySQL wird immer konfiguriert als Kombination von einem Benutzernamen, einem Passwort und der Angabe des Hosts, von dem aus ein Connect erfolgen darf. Wenn deine Kennung beispielsweise nur als "localhost" konfiguriert ist, kannst du damit nicht von fern zugreifen. The MySQL Access Privilege System

    mysqldump -h HOSTNAME -u USER -p PWD table > backup.sql

    Für das Passwort gibt es eine Besonderheit beim Notieren als Parameter: Es muss ohne Leerzeichen nach dem -p folgen. Using Options on the Command Line

    (Der Hostname -h ist hier natürlich der des MySQL-Servers. mysqldump muss ja wissen, wo es sich hinverbinden soll.)

    echo "$verabschiedung $name";