Seit einiger Zeit sichere ich die Datenbanktabellen auf meinem Entwicklungsserver (Debian) jeden Abend mit dem Perl-Script mysqlhotcopy. Einerseits beuge ich so einem Datenverlust vor, wenn ich für ein neues Projekt die Nacht durchgecodet habe und am nächsten Tag dummerweise DROP database ausführe, andererseits wenn Partyguide wieder einmal versuchen sollte, die Datenbank vollzuspammen.
Seit dem letzten
apt-get upgrade
spinnt die Routine leider und produziert folgende Fehlermeldungen:
Invalid db.table name 'mysql.mysql`.`columns_priv' at usr/local/mysql/current/bin/mysqlhotcopy line 855.
Quelle: mysqlhotcopy dies with error Invalid db.table name ‚foo.bar`.`baz‘
Das Problem taucht mit dem Upgrad auf DBD::mysql 4.003 auf. Da ich in der Eile nicht herausfinden konnte, wie ich dieses Package downgrade, habe ich mysqlhotcopy folgendermassen gepatcht:
... my @dbh_tables = eval { $dbh->tables() }; map { s/^.*?\.//o } @dbh_tables; ## Remove quotes around table names ...
Quelle: mysqlhotcopy dies with error Invalid db.table name ‚foo.bar`.`baz‘
Nun läuft das Backup wieder sorgenfrei.