Diese kleinen Tipps und Tricks sind für das Datenbank MySQL gedacht
Sicherung und Zurückspielen von MySQL-Datenbanken
Sicherung
Zur sicherung auf der Konsole folgende Zeile eingeben
mysqldump --user=admin --password=xxx db_name > dump.sql
Zurückspielen
Um das ganze wieder zurückzuspielen, muss man folgende Zeile eingeben
mysql --user=admin --password=xxx -D <db_name> < dump.sql
Wenn man statt –password=xx lieber nach dem Passwort gefragt werden möchte, verwendet man stattdessen den Parameter -p
Kompletten MySQL-Server sichern
Wie sichert man alle Datenbanken eines SQL-Servers und die dazu passenden User mit allen Passwörtern? Hier eine kleine Anleitung
Sicherung
mysqldump -uroot -pPWD --all-databases > ~/dump.sql
Zurückspielen
mysql -uroot -pPWD < ~/dump.sql
Nach dem Zurückspielen der Daten muss der SQL-Server neu starten
Zusätzliches
- Bei dieser Methode wird auch das alte Kennwort des debian-sys-maint-Users geändert. Beim Start von mysql wird deshalb folgende Fehlermeldung ausgegeben
ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)''
. Um das Passwort zu ändern, das Passwort aus der Datei
/etc/mysql/debian.cnf
heraussuchen und über phpMyAdmin austauschen. - Sollte folgende Fehlermeldung kommen
ERROR 1577 (HY000) at line 1: Cannot proceed because system tables used by Event Scheduler were found damaged at server start ERROR 1547 (HY000) at line 1: Column count of mysql.proc is wrong. Expected 20, found 16. The table is probably corrupted
, dann muss man die MySQL5-Daten zu MySQL5.1-Daten updaten. Dies geschieht mit
mysql_upgrade --force -u root -h localhost -p –verbose
beheben
User und Passwörter sichern
Will man nur die Datenbankuser und deren kennwörter sichern, muss man nur die Tabelle 'mysql' sichern
Sicherung
mysqldump --user=admin --password=xxx mysql > dump_usernames.sql
Restore
mysql --user=admin --password=xxx -D mysql < dump_usernames.sql
Root-Passwort setzen
Sollte das root-Passwort nicht gesetzt sein, so kann man es mit folgender Zeile setzen:
mysqladmin --user=root password <Passwort>
Zeichensätze setzen
Sollten bei verschiedenen Programmen die Umlaute falsch dargestellt werden, kann man dies in der Datei /etc/my.conf ändern
[mysqld] character_set_server = 'latin1'
Logging
Manchmal ist es notwendig, alle Queries mit zu loggen.
[mysqld] general_log_file = /var/log/mysql/mysql.log general_log = 1
Server restarten
service mysql restart systemctl restart mysql
Diskussion