Neues in der Kategorie MySQL
Folgenden Fehler kann man zum Beispiel erhalten, wenn man den Befehl "mysqldump" aufruft:
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect
Dieses Problem tritt auf, wenn zum Beispiel die entsprechende Socket-Datei nicht vorhanden ist. Deshalb sollte man überprüfen, ob die entsprechende Datei vom MySQL-Server erzeugt wurde. Falls nicht, kann dies daran liegen, dass der MySQL-Server zum Beispiel gar nicht läuft. Mit dem Befehl "ps -e" kann man als Root überprüfen, ob der Dienst "mysqld" läuft.
Ist dies nicht der Fall, hilft ein ordinärer Neu- bzw. Restart mit dem Befehl:
/etc/init.d/mysqld restart
Nun sollte auch die entsprechende Socket-Datei vorhanden sein.
Debian / MySQL: error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
Wer folgenden Fehler beim Starten oder Restarten seines MySQL-Servers unter Debian bekommt, der wird wohl versucht haben einen DUMP von einem anderen Server einzuspielen:
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
Um die Rechte für den "debian-sys-maint" wiederherzustellen einfach sich als "Root" am MySQL-Server anmelden und folgenden Befehl eingeben:
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '<password>' WITH GRANT OPTION;
Das gesuchte <password> findet man in "/etc/mysql/debian.cnf".
Ein etwas längerer Foreneintrag mit Problemlösung (auch für die Bedürfnisse von Ubuntu) findet man hier:
http://ubuntuforums.org/showthread.php?t=112505
Unter Linux lässt sich eine komplette Datenbank sehr komfortabel mit dem Tool "mysqldump" sichern. Voraussetzung hierfür ist aber der standardmäßige Einsatz von MyISAM als Speicher-Engine.
Möchte man alle Datenbanken des MySQL-Servers sichern, so kann man folgenden Befehl verwenden:
mysqldump -A -u BENUTZER -pPASSWORT > DATEI.sql
Dabei werden unter der Angabe des Benutzers und dessen Passworts alle Datenbanken in die Datei "DATEI.sql" geschrieben. Voraussetzung ist natürlich, der Benutzer hat Zugriffsrechte auf alle Datenbanken.
Möchte man nur eine spezielle Datenbank sichern, so kann man dies wie folgt tun:
mysqldump DATENBANKNAME -u BENUTZER -pPASSWORT > DATEI.sql
Das zurückspielen ist genauso einfach wie das sichern:
mysql -u BENUTZER -pPASSWORT < DATEI.sql
Achtung. Möchte man das Passwort direkt hinter der Option -p angeben, so darf kein Leerzeichen zwischen -p und dem Passwort stehen!
Homepage von MySQL und die komplette Dokumentation:
http://www.mysql.de/
http://dev.mysql.com/doc/
Backupempfehlungen und Anleitungen von MySQL:
http://dev.mysql.com/doc/mysql-backup-excerpt/5.0/en/index.html
Referenz zu mysqldump von MySQL:
http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html
Anleitung von Stefan Kornaski:
http://stefankonarski.de/content/mysqldump/
Anleitung von Alfred Nussbaumer:
http://www.gymmelk.ac.at/~nus/phpmysql/php/node106.html
Anleitung von Tim Bormann:
http://www.tim-bormann.de/anleitung-manuelles-und-automatisches-backup-mysql-datenbank/
Wikipedia-Eintrag zu MySQL und den verschiedenen Speicher-Engines:
http://de.wikipedia.org/wiki/MySQL
Wer unter Linux mit MySQL arbeitet, kann in wenigen Arbeitsschritten Benutzer und ganze Datenbanken anlegen. Unter Debian Etch 4.0 lässt sich MySQL auch ganz einfach installieren. Einfach mit apt-get folgenden Pakete installieren:
apt-get install mysql-server
apt-get install mysql-client
In der Kommandozeile kann man sich dann anschließend als Administrator mit folgendem Befehl anmelden:
mysql -u root -p
Danach sollte man eine Befehlszeile des MySQL-Servers sehen mit "mysql> ". Wer nun sehen möchte, welche Datenbanken angelegt sind, kann dies mit folgendem Befehl tun:
show databases;
(Das Semikolon (;) am Schluss ist ganz wichtig, da der Server nur so den Befehl als beendet erkennt)
Datenbanken kreieren kann man auch ganz leicht indem man einfach folgendes Kommando benutzt:
create database NEUE_DATENBANK;
Jetzt benötigen wir noch einen oder mehrere Benutzer, die auf die neu geschaffene Datenbank zugreifen dürfen. Dazu wird ein erst ein neuer Benutzer erstellt und ihm im Anschluss ein Passwort zugewiesen (beim Passwort muss man aufpassen, da man die Anführungszeichen nicht weglassen darf):
create user NEUER_BENUTZER@localhost;
set password for NEUER_BENUTZER@localhost = password('NEUES_PASSWORT');
Zu guter letzt müssen wir nur noch dem Benutzer die Datenbank zuweisen. Dies kann man mit folgendem Befehl machen, der alle Rechte (grant all) dem neuen Benutzer zuweist.
grant all on NEUE_DATENBANK.* to NEUER_BENUTZER@localhost;
Fertig ist die frisch gebackene Datenbank mit Benutzern die auch noch darauf zugreifen dürfen. Wer zusätzliche Hilfe braucht, sollte im Netz genügend gute Tutorials finden. Außerdem ist die MySQL-Server eigene Hilfe auch nicht schlecht, da sie zum Teil gute Beispiele in den Hilfetexten enthält.
PS: Wer Movable Type installiert, kann genau nach dieser Anleitung verfahren um eine MySQL-Datenbank mit Nutzer anzulegen.
Bei der Installation von Movable Type 4.0 ergaben sich einige Schwierigkeiten in Kombination mit MySQL 5.0.32. Wählt man nämlich für den Benutzer von Movable Type der auf die entsprechende Datenbank zugreifen soll ein Passwort mit Umlauten (ä, ö, ü, etc.), so kann es passieren, dass man folgenden Fehler erhält:
"Connection error: Access denied for user 'BENUTZERNAME'@'localhost' (using password: YES)
/WEBVERZEICHNIS/MOVABLE_TYPE_CGI/extlib/Data/ObjectDriver/Driver/BaseCache.pm line 233"
Abhilfe schafft man, indem man einfach das alte Passwort in ein neues ohne Umlaute abändert. Unter Linux auf der Kommandozeile kann man dies mit folgenden Befehlen machen:
mysql -u BENUTZERNAME -p
Dann das alte Passwort eingeben. Nun sollte man die mysql-Kommandozeile sehen, mit "mysql>". Danach kann man das Passwort ändern mit:
set password for BENUTZERNAME@localhost = password('PASSWORT_OHNE_UMLAUTE');
Nun ist das Passwort geändert und sollte bei der Installation von Movable Type keine Probleme mehr bereiten (Möglicherweise lässt sich das Probleme auch dadurch lösen, dass man an der richtigen Stelle die Zeichensätze verändert. Dies bleibt natürlich zu Testen).

