Neues in der Kategorie MySQL

Wer folgenden Fehler beim Öffnen eines Eintrags in Movable Type erhält, der hat eine ungültigen Kategorien-Zuweisung innerhalb seiner MySQL-Datenbank:

Can't call method 'label' on an undefined value

Auftreten kann das Problem zum Beispiel, wenn Einträge nicht korrekt abgespeichert werden und dabei die Zuordnung des Eintrags zu Kategorien durcheinander kommt.

Lösen kann man das Problem, in dem man direkt in der MySQL-Datenbank editiert, wobei man sich hier auskennen sollte. Zunächst einmal kann man sich als Administrator mit folgendem Kommando einloggen:

mysql - u root -p

Nach der Passworteingabe muss dann die entsprechende Movable Type Datenbank auswählen. Anzeigen lassen kann man sich die Datenbanken wie folgt:

show databases;

Dann mit dem folgenden Aufruf die gesuchte Datenbank auswählen:

use MT-DATENBANK;

Nun kann man der Anleitung von Marteen Schenk folgen und folgende Kommandos eingeben:

SELECT *
FROM `mt_placement`
LEFT JOIN mt_category ON ( placement_category_id = category_id )
WHERE category_id IS NULL;

Sollten hier eine oder mehrere Zeile ausgegeben werden, dann gibt es tatsächlich Probleme mit unzugewiesenen Kategorien/Einträgen. Durch Entfernen dieser Einträge kann man Movable Type wieder zum Laufen bringen. Hier der Befehl nach Marteen Schenk zum entfernen:

DELETE mt_placement FROM `mt_placement` LEFT JOIN mt_category ON ( placement_category_id = category_id ) WHERE category_id IS NULL;

Danach sollte man ohne Probleme innerhalb vom Movable Type wieder auf den Eintrag zugreifen können.

Hier der Link zur Original-Lösung von Marteen Schenk bei Movable Tips:
http://www.movabletips.com/2012/02/fixing-movable-type-error-cant-call-method-label-on-an-undefined-value.html

 

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.

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).

Über dieses Archiv

Diese Seite enthält aktuelle Einträge der Kategorie MySQL.

Movable Type ist die vorherige Kategorie.

Netzwerk ist die nächste Kategorie.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Dezember 2014

So Mo Di Mi Do Fr Sa
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
Etter EDV- und IT-Dienstleistungen
Powered by Movable Type 5.04

Google Werbung:

Google Werbung: