Verbindung zu MySQL über die Befehlszeile

225

Wie können Sie über die Befehlszeile eines Mac eine Verbindung zu MySQL herstellen? (dh zeig mir den Code)

Ich mache ein PHP / SQL-Tutorial, aber es beginnt damit, dass Sie bereits in MySQL sind.

Leahcim
quelle

Antworten:

404

Siehe hier http://dev.mysql.com/doc/refman/5.0/en/connecting.html

mysql -u USERNAME -pPASSWORD -h HOSTNAMEORIP DATABASENAME 

Die oben genannten Optionen bedeuten:

-u: username
-p: password (**no space between -p and the password text**)
-h: host
last one is name of the database that you wanted to connect. 

Schauen Sie in den Link, er ist dort detailliert!


Wie bereits von Rick erwähnt , können Sie die Übergabe des Kennworts als Teil des Befehls vermeiden, indem Sie das Kennwort nicht wie folgt übergeben:

mysql -u USERNAME -h HOSTNAMEORIP DATABASENAME -p

Personen, die diese Antwort bearbeiten: BITTE KEINEN RAUM zwischen -pund HINZUFÜGENPASSWORD

Nishant
quelle
Vielen Dank, 2 Fragen 1) Müssen Sie das "- u" "- p" usw. einfügen oder werden diese durch den Benutzernamen usw. ersetzt? 2) Wenn keine Datenbank erstellt wurde, lassen Sie diese einfach leer?
Leahcim
2
Es ist möglich, die MySQL-Authentifizierung basierend auf dem Benutzer einzurichten, als den Sie angemeldet sind, oder sich überhaupt nicht zu authentifizieren. Dies ist jedoch keine gute Idee. Die Angabe des Kennworts in der Befehlszeile stellt sogar ein geringes Sicherheitsrisiko dar, da es in Ihrem Befehl endet Verlaufs- und Prozesstabellen. Wenn Sie das Passwort weglassen, werden Sie danach gefragt.
DJ_Segfault
@ Michael 1) aktualisiert. Das ALL-CAPS muss durch tatsächliche Werte ersetzt werden. lass das -u, -p, -h wie es ist 2) ja. Geben Sie nach der Anmeldung ein show databases, um die Liste der Datenbanken anzuzeigen.
Nishant
3
@dj_segfault richtig. Wenn Sie also gehen, -pohne das Passwort anzugeben, werden Sie zur Eingabe des Passworts aufgefordert.
Nishant
Wenn Sie derzeit keine Datenbank erstellt haben, müssen Sie den Befehl mysqladmin verwenden , um eine zu erstellen. Ich glaube jedoch, dass bei der Installation des Servers die Standarddatenbank "mysql" erstellt wird, die alle Schema- und Authentifizierungsinformationen enthält. Sie können sich bei dieser anmelden (wenn Sie über ausreichende Berechtigungen verfügen) und von dort aus andere Datenbanken erstellen.
DJ_Segfault
128

Best Practice wäre zu mysql -u root -p. Dann fordert MySQL nach der Eingabe des Passworts auf.

Rick
quelle
25
Dies verhindert, dass Ihr Passwort angezeigt wird .bash_history. Wenn jemand nach der aktuellen Methode mit der höchsten Bewertung Zugriff auf $HOME(und damit .bash_history) erhält , hat er auch Ihre Authentifizierungsdaten - beängstigend! Diese Art von Eindringen kann (und tut ) passieren ...
Jeremy
Sie können einen Bash-Befehl ausführen, ohne dass er in der .bash_profie angezeigt wird. Lesen Sie hier mehr: commandlinefu.com/commands/view/1512/…
Skid Kadda
@Jeremy Nicht nur in, .bash_historysondern auch in topund mehr Tools! Sie können sogar Ihre Dateien sichern, indem Sie den Computer einfach für einen anderen legitimen Benutzer freigeben.
Melebius
+1 Da mein Passwort spezielle Symbole enthält und nicht analysiert wird, wenn es Teil des Befehls ist, muss es separat ausgeführt werden.
Jacksonkr
10

Verwenden Sie den folgenden Befehl, um eine Verbindung zu Ihrer MySQL-Datenbank herzustellen

mysql -u USERNAME -h HOSTNAME -p

Swamy
quelle
9

Nachdem Sie MySQL Shell ausgeführt haben und Folgendes gesehen haben:

mysql-js>

Erstens sollten Sie:

mysql-js>\sql

Zweitens:

 mysql-sql>\connect username@servername (root@localhost)

Und schlussendlich:

Enter password:*********
Vorname Nachname
quelle
3

Eine Möglichkeit, mit dem richtigen MySQL-Benutzernamen und -Kennwort direkt eine Verbindung zu MySQL herzustellen, ist:

mysql --user=root --password=mypass

Hier,

root is the MySQL username
mypass is the MySQL user password

Dies ist nützlich, wenn Sie ein leeres Passwort haben.

Wenn Sie beispielsweise einen MySQL-Benutzer rootmit einem leeren Kennwort angerufen haben , verwenden Sie einfach

mysql --user=root --password=
Arsho
quelle
0

Das hat bei mir funktioniert :: -

mysql --host=hostNameorIp --user=username --password=password  

oder

mysql --host=hostNameorIp --user=username --password=password database_name
Anand Tiwari
quelle