rcorten
Goto Top

Shell Skript zur leerung einer MySQL Tabelle

Guten Tag,

ich habe ein Problem.

Ich muss ein Shell Skript schreiben, welches auf einem Unix System per Cronjob gestartet wird.

Das Shell skript soll eine Tabelle in einer MySQL Datenbank leeren.

Ich habe leider nicht so die große Erfahrung mit MySQL Befehlen und könnte Hilfe benötigen.

Über eine Antwort würde ich mich sehr freuen.

Viele Grüße,
René Corten

Content-Key: 153036

Url: https://administrator.de/contentid/153036

Printed on: April 25, 2024 at 08:04 o'clock

Member: maretz
maretz Oct 14, 2010 at 12:27:49 (UTC)
Goto Top
ähm - wie wärs mit

delete from xyz

-> wobei xyz dein Tabellenname ist? Das wäre schonmal ein erster Ansatz... ansonsten mysql.com/documentation....
Member: rcorten
rcorten Oct 14, 2010 at 12:58:57 (UTC)
Goto Top
Ja, aber es muss doch bestimmt vorher ein connect gemacht werden oder?

Die TAbelle, die geleert werden soll lautet:

wcf1_session und wcf1_session_data

Könntest du mir noch weitere Hilfe anbieten?


DELETE * FROM `db259548_1`.`wcf1_session`

erbringt folgende Meldung:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM `db259548_1`.`wcf1_session`' at line 1
Mitglied: 6890
6890 Oct 14, 2010 at 13:08:04 (UTC)
Goto Top
Hmm,

es scheint die leute werden immer fauler...

google --> mysql delete --> http://dev.mysql.com/doc/refman/5.1/de/delete.html
google --> mysql truncate --> http://dev.mysql.com/doc/refman/5.1/de/truncate.html
google --> mysql linux cmd --> http://dev.mysql.com/doc/refman/5.0/en/batch-commands.html

mfg
Member: rcorten
rcorten Oct 14, 2010 at 13:14:23 (UTC)
Goto Top
Zitat von @6890:
Hmm,

es scheint die leute werden immer fauler...

google --> mysql delete --> http://dev.mysql.com/doc/refman/5.1/de/delete.html
google --> mysql truncate --> http://dev.mysql.com/doc/refman/5.1/de/truncate.html
google --> mysql linux cmd --> http://dev.mysql.com/doc/refman/5.0/en/batch-commands.html

mfg

Nein, ich verstehe die Anweisungen nur nicht...

Ok, die Befehle müssten also per Cronjob ausgeführt werden.

TRUNCATE TABLE `db259548_1`.`wcf1_session`
TRUNCATE TABLE `db259548_1`.`wcf1_session_data`

Wie muss denn dann das Skript lauten?

Ich habe einfach keine Ahnung davon und deshalb suche ich bei euch Hilfe, weil Dr. Google mir leider nicht helfen konnte.
Member: maretz
maretz Oct 14, 2010 at 13:20:25 (UTC)
Goto Top
nun - ggf. hilft mal "shell mysql execute" in google -> da kommst du auf z.B. diese Seite:

http://www.cyberciti.biz/faq/using-mysql-in-shell-scripts/

Ich denke mal das wäre nen Anfang... nur zum ausprobieren ob der Befehl klappt würde ich allerdings nen select-stmt nehmen...
Mitglied: 6890
6890 Oct 14, 2010 at 13:21:02 (UTC)
Goto Top
Hmm,

was genau verstehst du bei welcher Anweisung nicht?
hier ein paar beispiele:

tabelle leeren (komplett leer!):
TRUNCATE TABLE bla;

tabelle leeren mit DELETE:
DELETE FROM bla;

einträge leere die status 1 haben:
DELETE FROM bla WHERE status=1;

wo hängts denn jetzt?
Member: rcorten
rcorten Oct 14, 2010 at 13:22:58 (UTC)
Goto Top
Zitat von @6890:
Hmm,

was genau verstehst du bei welcher Anweisung nicht?
hier ein paar beispiele:

> tabelle leeren (komplett leer!):
> TRUNCATE TABLE bla;

> tabelle leeren mit DELETE:
> DELETE FROM bla;

> einträge leere die status 1 haben:
> DELETE FROM bla WHERE status=1;

wo hängts denn jetzt?


Der Befehl selbst funktioniert ja, nur weiss ich nicht, wie ich diesen als Skript verpacken kann, damit es per Cronjob gestartet werden kann...

Member: StefanSch
StefanSch Oct 16, 2010 at 10:24:37 (UTC)
Goto Top
Prinzipiell "mysql < batchFile". Ggf. absolute Pfade in Erfahrung bringen. Und hoffen, dass die Berechtigungen ausreichen ...
Member: StefanSch
StefanSch Oct 16, 2010 at 10:31:45 (UTC)
Goto Top
Ach so, und "Batch Mode" ist der Terminus, der Dich in dieser Sache bei Suchmaschinen weiterbringt. Und Dich z.B. hierhin verweist : http://dev.mysql.com/doc/refman/5.1/en/batch-mode.html .
Member: rcorten
rcorten Oct 16, 2010 at 10:35:36 (UTC)
Goto Top
Danke, habe es geschafft...

Viele Grüße,
René