Debacher-Blog

Uwes Weblog für Texte die (noch) nicht ins Wiki passen
Okt 10

Beim Sichern einer Datenbank mittels mysqldump hatte ich das Problem, dass immer irgendeine Fehlermeldung auftauchte, die auf das Fehlern irgendeiner Datei hinwies. Bei genauerer Recherche stellte ich fest, dass es sich um ein Problem mit der Zahl der offenen Dateien handelt. Mysqldump versucht anscheinen alle Tabellen parallel zu öffnen und diese Datenbank besitzt sehr viele Tabellen.

Eine Einfache Lösung besteht darin statt (hier als root):

mysqldump datenbank -p > /tmp/datenbank.sql

zu schreiben:

mysqldump datenbank --single-transaction -p > /tmp/datenbank.sql

Damit funktioniert der Dump dann auch. Siehe dazu auch http://rackerhacker.com/2007/08/19/mysql-errcode-24-when-using-lock-tables/

Nov 15
MySQL und CSV
icon1 debacher | icon2 Tipps und Tricks | icon4 11 15th, 2009| icon3No Comments »

Gelegentlich bekommt man Daten im CSV-Format.  MySQL kann auch damit umgehen.

Importieren kann man CSV-Dateien z.B. von phpMyAdmin aus mittels

LOAD DATA LOCAL
 INFILE '/tmp/land.csv'
 REPLACE
 INTO TABLE LAND
 FIELDS
 TERMINATED BY ';'
 OPTIONALLY ENCLOSED BY '"'

Anpasse muss man jeweils natürlich den Namen der Tabelle und den Namen der zu importierenden Datei.

Auch die Gegenrichtung ist möglich, also der Export in in CSV-Datei:

SELECT *
INTO OUTFILE '/tmp/land.csv'
FIELDS
TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"'
FROM LAND;