Jul
21
2008
Um das MySQL root Passwort zu ändern gibt es verschiedene Möglichkeiten, die ich hier einmal festhalten möchte.
1. Falls das aktuelle Passwort bekannt ist
Mittels mysqladmin:
mysqladmin -u root password
>>"mein_passwort"
Mittels MySQL-Client:
mysql –u root
>>UPDATE user SET Password=PASSWORD('mein_pwd') WHERE user='root';
>>flush privileges;
2. Wenn das aktuelle root Passwort nicht bekannt ist
MySQLD muss mit –skip-grant-tables gestarten werden.
Meisten ist das Command hierfür:
/usr/bin/mysqld_safe --skip-grant-tables &
Danach Passwort ändern mit:
>mysql -u root
>>UPDATE mysql.user SET Password=PASSWORD('IhrNeuesPasswort') WHERE User='root';
>>FLUSH PRIVILEGES;
Jun
20
2008
Es gibt viele Gründe warum man die MySQL Datenbank einmal exportieren muss. Als onboard Tool stellt einem MySQL dafür das Programm mysqldump zur Verfügung.
* Serverumzug
* Update der Datenbank Version
* Datensicherung
sind häufig die Gründe warum ein solcher Export sämtlicher Daten einer Datenbank nötig ist. Für das tägliche sichern per Cronjob habe ich ja bereits eine Möglichkeit in diesem Blog genannt. Dieser Post ist > hier < zu finden.
Um die Datenbank über die Console bzw. SSH zu exportieren verwende ich meistens folgende Befehle:
mysqldump --opt -e -l --add-drop-table --force --host=localhost --user=USER --password=PASSWORD DATENDANKNAME > /PFAD/ZUM/DUMP.sql
Um den MySQLDump anschließend wieder einzuspielen:
mysql --host=localhost --user=USER --password=PASSWORT DATENBANKNAME < /PFAD/ZUM/DUMP.sql
Um den Dump direkt zu packen:
mysqldump --opt -e -l --add-drop-table --force --host=localhost --user=USER --password=PASSWORD DATENDANKNAME | gzip > /PFAD/ZUM/DUMP.gz
Feb
16
2008
Um einmal täglich einen MySQLDUMP aller Datenbanken in ein File oder Einzelfiles pro Datenbank zu erstellen habe ich dieses Script geschrieben.
Es erstellt zunächst den oder die MySQLDUMPS aller Datenbanken und packt diese letztendlich in das Zielverzeichnis im GZIP Format.
Dateien eines gewissen Alters werden automatisch gelöscht (Default: 8 Tage).
Der Aufruf des Scripts kann entweder direkt per Cron oder mit dem nachfolgenden “Caller” erfolgen, der die Ausgabe zusätzlich per E-Mail verschickt.
#!/bin/bash
# Backup E-Mail NotificationPATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"DATUM=$(date "+%d.%m.%y")SERVERNAME="MEIN-SERVER"
LOCALLOG="/var/log/db_backup.log"
/pfad/zum/mysqldump.sh >/tmp/1cf54aad7e5ded97201726b3eb1f25e0 2>&1
cat /tmp/1cf54aad7e5ded97201726b3eb1f25e0 | mail -s "$SERVERNAME DB $DATUM" meine-email@adresse.tld
cat /tmp/1cf54aad7e5ded97201726b3eb1f25e0 >> $LOCALLOG
exit 0
Das oben angesprochene mysqldump.sh Script findet ihr
hier zum Download
Danach fehlt nurnoch der Aufruf des Callers per Cronjob und die Anpassung des BASH Scripts, was ich beides euch überlasse ;)
Getestet ist es unter Gentoo und Debian.