MySQL per Komandozeile

N

n8mensch

Neues Mitglied
Thread Starter
Dabei seit
04.01.2006
Beiträge
10
Reaktionspunkte
0
Horido,

ich Versuch' grade über Komandozeile etwas in meine MySQL Datenbank zu schreiben. Ich habe die Aktuelle Version des Server's installiert (5.0.18). Hat irgendwer ne Idee ?

g
n8m
 
mysql -u user -p passwort < statements.sql
 
Das Leerzeichen vor dem Passwort muss weg, oneOeight, es sei denn, die Datenbank heisst 'passwort' ;).
Und eine Datenbank sollte natürlich auch abgegeben werden, es se denn, statements.sql beginnt mit einem use statement.

Man kann aber auch eine interactive mysql Shell starten.
Code:
mysql -u [i]user[/i] -p [i]Datenbankname[/i]
oder
Code:
mysql -u [i]user[/i] -p[i]passwort Datenbankname[/i]
 
Seit wann wird der DB Name beim passwort mitübergeben, und woi st überhaupt der host?
mysql -h $hostname -u $user $datenbanname -p $passwort

außeder versucht er was reinzuscheiben und keine dumps einzuspielen, wobei man das auch als reinschreiben verstehen könnte.
 
MacEbola schrieb:
Seit wann wird der DB Name beim passwort mitübergeben, und woi st überhaupt der host?
mysql -h $hostname -u $user $datenbanname -p $passwort
Weil zwischen der Option -p und dem eigentlichen Passwort kein Leerzeichen sein darf. Wenn dort ein Leerzeichen ist, interpretiert der Client dies als zwei verschiedene Argumente. Das erste Argument wird interpretiert als: interaktive Passworteingabe. Das zweite Argument (bei Dir $password) wird dann als Datenbankname interpretiert.
Also richtig lautet es schon: mysql -h <host> -u <user> -p<password> <database>
oder eben für eine interaktive Passworteingabe: mysql -h <host> -u <user> -p <database>

Pingu
 
Ja, und wenn man den host weglässt wird eben standardmäßig localhost verwendet, wenn man den User weglässt, wird der aktuelle Benutzername verwendet, wenn man den Schalter -p weglässt, wird angenommen, dass die Datenbank kein Passwort hat (using password: NO) und wenn man $passwort weglässt, wird das Passwort interaktiv abgefragt.
Die Datenbank kann man auch in der interaktiven mysql Shell wählen.

Insofern lautet die Syntax also:
Code:
mysql [-h $hostname] [-u $user] [-p[$passwort]] [weitere Optionen] [$datenbanname]

Das ist eigentlich sehr gut dokumentiert.
Wenn es trotzdem noch Fragen gibt, bitte posten.
 
wow super!

danke erstmal fuer diese Zahlreichen Antworten! Wenn ich nun aber
versuche einen mySQL Befehl abzusetzen sagt er mir:

-bash: mysql: command not found

Ich vermute das ich einfach nur irgendwo eine Pfadangabe machen
muss (wie unter linux) damit das Binary von mySQL gefunden wird.
In Linux wuerde ich das in der .bashrc machen aber funktioniert das
dann auch wenn ich das z.b. per apple script dann aufrufe? Ich vermute
das man das in OS X irgendwo Systemweit einstellen kann, habe nur
leider keine Ahnung wo.

Ich wuerde mich ueber ein paar Anregungen freuen.

gruß
n8m
 
hast du mysql überhaupt lokal installiert?

oder mach mal:
"locate mysql"
dann zeigt er dir den Pfad an.
 
wenn ich "locate mysql" mache zeigt er mir allerhand zeux an, aber
nicht meine installation in:

/usr/locale/mysql/

hab ich da bei der Installation irgendeinen Fehler gemacht ? Ich meine
man konnte bei der Installation glaub' ich keine angaben machen, und im
"bin" unterverzeichniss von mysql kann ich auch alles wunderbar
ausfuehren (zumindest komme ich von da in die mySQL Shell rein ).

gruß
n8m
 
dann hast du wohl "frisch" installiert.

Egal, du hast es ja gefunden.

Ich glaube, die Pfadangaben liegen in .profile im Homeverzeichnis, dort kannst du es eintragen.

Sorry, ich sitz grad an der Linux-Kiste und nicht am Mac.
 
ich habe nun den Pfad in die systemweite Profile datei eingetragen, aber ich kann immer noch nicht mysql aufrufen. wenn ich ./mysql im /usr/locale/mysql/bin aufrufe geht's.

ich frag mich was das ist.

g
n8m
 
n8mensch schrieb:
ich habe nun den Pfad in die systemweite Profile datei eingetragen, aber ich kann immer noch nicht mysql aufrufen. wenn ich ./mysql im /usr/locale/mysql/bin aufrufe geht's.
Ich weiss ja nicht was Du wo eingetragen hast, aber die "richtigen" Datein für die bash sind ~/.bash_profile (für login shells) und ~/.bashrc (für nicht login shells, z.B. xterm).
Dass man danach eine neue Shell starten muss ist Dir bestimmt bewusst ;).
 
mag sein, aber wenn ich mir mit "echo $PATH" den Pfad ausgeben lasse erscheint folgendes:

"/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/locale/mysql/bin:/usr/X11R6/bin"

was mich glauben laesst das die eintragung in /etc/profile korrekt war. Ich kann
mysql aber weiterhin nur direckt im bin verzeichnis starten, also trotz korrekter pfad
angabe.
 
Korrekt?
Dann mach mal:
Code:
ls -l /usr/locale/mysql/bin
Da steckt der Teufel im Detail :D.

Man kann natürlich die /etc/profile verwenden; man sollte aber wissen, welche Datei wofür zuständig ist, und die auswählen, die man dann wirklich meint ;).
 
DOH! *vordenkopfschlag*

Danke! Jetzt klappts!!

*kopfschuettel*

g
n8m
 
Zurück
Oben Unten