Hier habe ich erklärt, wie man alle mySQL-Datenbanken z.B. per Cronjob regelmäßig in ein Verzeichnis exportiert. Das klappte auch prima bis zu dem Moment, als ich auf mySQL 5.6 upgedated habe. Seitdem bekomme ich immer wenn der Cronjob läuft eine Mail mit diesem Inhalt:
Warning: Using a password on the command line interface can be insecure.
Das ganze ist natürlich nervig, darum musste eine Lösung her. Zunächst mal habe ich das Skript geringfügig geändert. Statt Benutzernamen steht jetzt hier nur noch –login-path=local
#!/bin/bash for db in $(mysql --login-path=local -e 'show databases' -s --skip-column-names); do if [[ "$db" != *schema* && "$db" != *phpmyadmin* && "$db" != "event" && "$db" != "psa" && "$db" != "mysql" ]]; then mysqldump --login-path=local $db | bzip2 -c > /root/backup/mysql/$db.sql.bz2 fi done
Nur das Skript alleine reicht aber noch nicht – jetzt muss man noch mit dem Befehl mysql_config_editor den Zugriff für einen Benutzer einrichten. Unter Plesk bietet sich hier der Admin-User an, oder man legt extra einen hierfür an.
mysql_config_editor set --login-path=local --host=localhost --user=admin --password
Wenn der Befehl nicht ausgeführt werden kann, muss man eventuell vorher noch den mySQL-Config-Editor nachinstallieren. Das erledigt dann der Befehl:
apt-get install libmysqlclient-dev
Und schon gibt es wieder eine regelmäßige Sicherung der Datenbanken!