• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] mysqldump geht nicht!

bicpi

Member
Hallo !

Möchte gerne ein Backup meiner DB's mit mysqldump ziehen:

Code:
usr/bin# ./mysqldump -A -u user -p xxx
Doch was dabei rauskommt sind nicht die sql-Befehle:
Code:
Usage: ./mysqldump [OPTIONS] database [tables]
OR     ./mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     ./mysqldump [OPTIONS] --all-databases [OPTIONS]

Wieso geht das nicht? Habe den Db-user über die Admin-Oberfläche von Confixx eingerichtet.
Hat jemand eine Idee? DANKE
 

KriS

Newbie
HI,

Code:
mysqldump -a -Q -B -e --opt -uroot --password="geheim" $i > $i.sql
$i durch datenbanknamen ersetzen.

So long
KriS
 
OP
B

bicpi

Member
Klappt leider auch nicht...selbe Ausgabe wie oben.Vielleicht liegts am Benutzernamen, aber es kommt keine Fehlermeldung, dass dieser falsch wäre. Wie richte ich denn den "Super-User" ein, der Zugriff auf alle dbs hat und diese somit auch sichern kann?

Aber danke auf jeden Fall schon mal :)
 

KriS

Newbie
Hi,

"root" ist der Super-User...
aber ein:

Code:
mysqldump -a -Q -B -e --opt -uroot --password="geheim" test > test.sql
Sollte wirklich funktionieren.
Gibst du es in der console ein? oder versuchst du es via Script?
Bei mir funzt es so auf jeden Fall. Mit dem Command werden bei mir sämtliche MySQL-DBs jeden abend gesichert.

So long
KriS
 
OP
B

bicpi

Member
Ich glaube ich verwechsle nun alles...ist der MySQLadmin-Name also identisch mit root und dessen PW?
Wenn ich es damit versuche, kommt Access denied.
 

PC-Ulf

Member
In MySQL hast Du die DB mysql mit drei Tabellen: DB, Host und User.

Starte mal nur
Code:
mysql
Wenn Du nach keinem Paßwort gefragt wurdest, besitzt Root kein Passwort in MySQL. Dieser Root der MySQL DB ist von Haus aus erstmal ohne Paßwort (eine häufige Sicherheitslücke bei Servern, weil Anfänger davon ausgehen das dieser das Paßwort gesetzt hat, weil ja auch der DB-User ein Paßwort hat, FALSCH :!:).

Wenn Du in MySQL als Root bist, ruf mit
Code:
use mysql;
die Konfigurationsdb auf.
Mit
Code:
show tables;
select * from Tabelle;
kannst Du Dir einen Überblick verschaffen. Es kann sich auch lohnen PHPMYADMIN zu installieren, es ist gerade für Anfänger überschaubarer.

Der Benutzer Root und der Administrator Root sind nicht identisch. MySQL verwaltet sein Nutzer in der DB mysql unter der Tabelle user. Deshalb hat der mysql Nutzer Root bei einer neuen Konfiguration noch kein Paßwort gesetzt. Das Paßwort sollte auf keinen Fall identisch mit dem Paßwort des Betriebssystem sein, falls die DB durch Skriptfehler mal gekappert wurde. Somit beschränkt sich der geknackte Datenbankserver nicht auch noch auf das Betriebssystem :!:

Hast Du mal ohne der Option -p und -u wie ich vorgeschlagen habe eine Sicherung ausprobiert :?: Dann wird automatisch der Nutzer root gestartet, sollte dieser ein Paßwort besitzen, kommt anschließend die Aufforderung nach diesem.

Nebenbei: Um DB zu optimieren, bitte auch hier im Forum einfach einen edit: in den Beitragen anhängen, statt mit nur einer kleinen Ergänzung die DB des Forums unnötig zu belasten. :wink:
 
OP
B

bicpi

Member
Ich danke Dir für Deine ausführliche Antwort ! Vieles davon kam mir sehr bekannt vor (habe bisher immer unter Windows administriert) und war eben auch auf der Suche nach der 'users'-Tabelle, wusste aber nicht wie ich unter linux rankomme ;)
Nun gehen aber die Probleme weiter, denn gebe ich "mysql" ein, kommt "access denied for root"...obwohl ich nie ein PW dafür gesetzt habe...zur Sicherheit habe ich noch alle überhaupt in Frage kommenden PW getestet...nichts. Da ich mal nicht davon ausgehe, dass ich das PW irgendwo auslesen kann (wäre ja auch noch schöner..), steh ich recht doof da...bleibt nur noch, dass Strato (mein Serverstandort) evtl. ein Standart-root-PW gesetzt hat, da erkundige ich mich mal...was bleibt einem sonst noch übrig..?

Viele Grüße und nochmal Danke, wenn ich nun reinkommen würde, wär mir alle klar :)

PS: und "edit" geht klar !

PPS: Unter Confixx hat jeder Kunde eine Übersicht zu mysql, unter der u.a. die Zugangsdaten via Konsole aufgeführt sind. Dies wäre zwar dann nicht der root-Zugang, aber beim testen mit den dortigen Daten geht es hier ebenfalls nicht...ich mache doch nichts falsch, oder (hier die ausführliche Variante):
Code:
mysql --user=USER --password=GEHEIM
Mehr als ein "access denied" kommt auch hier nicht raus...
 

PC-Ulf

Member
Setz doch einfach ein neues Root-Paßwort :!:

Das geht mit
Code:
mysqladmin -u root -password newpassword
glaube ich. Du kannst auf jeden Fall aus der Shell ein neues Paßwort setzen :!: :lol:

Der Root Administrator des Betriebssystem ist damit den Root der Mysql DB überlegen, ist auch richtig so.

edit//
Freund Confixx, noch einfacher:
Schau unter root Verzeichnis (~) im Verzeichnis /confixx die Datei confixx_main.conf an, hier liegt das MySQL Paßwort im Klartext :!:

edit///
Wenn die Paßwörter der DB auch der Nutzer nicht mehr stimmen, dann ist etwas merkwürdig, sofern Du diese nicht aus der Konsole geändert hast.
Ist die DB auch für andere host außer localhost geöffnet :?:
Unter Confixx muß man eigentlich die Freigabe der MySQL nach außen aktivieren, ist diese bei Dir schon aktiviert :?:
Wenn ja, hat vielleicht jemand Deine DB gekapert. Unschön, setze neue Paßwörter und beim nächsten Mal sofort das Root Paßwort setzen.
Für den Betrieb unter Apache muß die MySQL DB nicht nach außen geöffnet sein :!:
 
OP
B

bicpi

Member
Stimmt, er müsste eigentlich überlegen sein :roll:

Also ich hab fleißig in der mysql-Doku gelesen, und bis auf die Server-Version spuckt mysqladmin gar nichts aus...Mit

Code:
mysqladmin -u root password NEWPW
hab ich das PW zu ändern versucht (so stehts in der Anleitung), geht aber nicht...immer "access denied" (bin aber schon als root eingeloggt im SSH)...es ist zum Haare raufen !
 

PC-Ulf

Member
Werf mal ein Blick auf: http://faq.1und1.de/server/root_server/daemons/1.html

Hast Du ein Blick in die Confixx Datei geworfen :?:
Dort steht das Paßwort Root wirklich im Klartext,
Code:
cat confixx_main.conf | grep mysql
liefert im Verzeichnis /root/confixx eine große Sicherheitslücke.
 
OP
B

bicpi

Member
Ich glaube jetzt hast Du mich gerettet !! Ich konnte mich erstmal über mysqladmin verbinden!

In der confixx-Datei steht ein ziemlich wirres PW, also muss es von Strato gesetzt gewesen sein und die geben es nirgends bekannt...Witzbolde. Bleibt nur noch, warum das ändern nicht ging..? Ist root doch nicht überlegen?

Und zur Sicherheitlücke: das root-Verzeichnis ist ja nur für root lesebar, ne?

Ich danke Dir auf jeden Fall vielmals, jetzt kanns mal wieder sinnvoll weitergehen!

:D :D
 

PC-Ulf

Member
bicpi schrieb:
Und zur Sicherheitlücke: das root-Verzeichnis ist ja nur für root lesebar, ne?
Verlass Dich darauf nicht. Das sicherste ist das Paßwort in der Konsole zu setzen. Sollen Änderungen durch Confixx gemacht werden, das Paßwort in der Zeit auf das Confixx Paßwort zurücksetzen, anschließend zurück zum alten Paßwort. :wink:

Lesetip für Administratoren: mindestens Linux Magazin, haking schadet auch nicht. Im Linux Magazin 10/04 ist ein netter Berichte über einen geknackten Server. Zum Thema Sicherheit zudem eine Berichtsserie, sehr lesenswert.
 
OP
B

bicpi

Member
Aaaalso, hab auch grad noch Deine edits gesehen. Habs nun auch geschafft, das OW zu ändern, hurra ! In der Confixx-Datei steht nun noch das alte, nunmehr ungültige...also dürfte diese Sicherheitslücke auch getilgt sein. Mit den übrigen User-Namen der DB kann ich mich auch einloggen, allerdings nur in der Schreibweise "--password=XXX", die Kurzform ging da nicht...komisch. Jetzt kann ich wohl mal zum mysqldump zurückkehren, denn was ich eigentlich vorhabe ist die DB zu sichern und dann mit ReoBack ein Backup erstellen :)

Nach aussen ist die DB übrigens niemals offen gewesen.

Danke für Deine Mühe, Linux-Magazin ist ein guter Tipp, ansonsten tauch ich bestimmt bald mal wieder hier auf :oops:
 
Oben