Ich möchte anfangen, Abfragen in MySQL zu schreiben.
show grants
zeigt an:
+--------------------------------------+
| Grants for @localhost |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+
Ich habe keine Benutzer-ID, aber wenn ich einen Benutzer erstellen möchte, habe ich keine Berechtigungen. Außerdem weiß ich nicht, wie ich Berechtigungen erstellen soll, wenn selbst ich keinen Benutzer habe!
mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'parsa';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER pr
ivilege(s) for this operation
Ich habe versucht, mich als root anzumelden:
mysql> mysql -u root -p;
ERROR 1064 (42000): 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 'mysql
-u root -p' at line 1
mysql> mysql -u root -p root;
ERROR 1064 (42000): 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 'mysql
-u root -p root' at line 1
root
bei der Installation von MySQL erstellt worden sein.mysql -u root -p
. B. durch Ausführen . Dann haben Sie volle Berechtigungen auf dem Datenbankserver und können andere Benutzer erstellen.Antworten:
Nein, Sie sollten
mysql -u root -p
in Bash ausgeführt werden, nicht in der MySQL-Befehlszeile. Wenn Sie in mysql sind, können Sie durch Eingabe verlassen Ausfahrt .quelle
Möglicherweise müssen Sie ein Root-Konto für Ihre MySQL-Datenbank einrichten:
Im Terminaltyp:
Und dann, um den MySQL-Client aufzurufen:
quelle
Ich wurde durch ein anderes Problem hierher gebracht. Wann immer ich versuchte mich anzumelden, bekam ich diese Nachricht, weil ich mich nicht korrekt authentifizierte, sondern als anonymer Benutzer anmeldete. Die Lösung für mein Problem war:
So sehen Sie, welcher Benutzer Sie sind und wessen Berechtigungen Sie haben:
So löschen Sie den nervigen anonymen Benutzer:
quelle
Dies hat etwas mit Benutzerberechtigungen zu tun. Durch die Gewährung angemessener Zuschüsse wird dieses Problem gelöst.
Schritt [1]: Öffnen Sie das Terminal und führen Sie diesen Befehl aus
Ausgabe [1]: Dies sollte Ihnen die unten gezeigte MySQL-Eingabeaufforderung geben
Schritt 2]:
Syntax:
Schritt [3]: Verlassen Sie die aktuelle MySQL-Eingabeaufforderung, indem Sie entweder
quit
/exit
command eingeben oder drückenCtrl+D
.Schritt [4]: Melden Sie sich bei Ihrem neuen Benutzer an
Schritt [5]: Erstellen Sie die Datenbank
quelle
CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'your_password';
dort bin, erhalte ich folgende Fehlermeldung: FEHLER 1227 (42000): Zugriff verweigert; Sie benötigen (mindestens eines) der CREATE USER-Berechtigung (en) für diese OperationMöglicherweise möchten Sie den vollständigen Anmeldebefehl ausprobieren:
wo Gastgeber wäre
127.0.0.1
.Tun Sie dies nur, um sicherzustellen, dass eine Zusammenarbeit besteht.
Die Verwendung
mysql -u root -p
ermöglicht mir eine umfangreiche Datenbanksuche, lehnt jedoch die Erstellung von Datenbanken aufgrund einer Pfadeinstellung ab.quelle
Wenn Sie mit der Befehlszeile nicht vertraut sind, versuchen Sie zunächst, phpmyadmin von Ihrem Webbrowser aus zu verwenden. Dadurch wird sichergestellt, dass Sie tatsächlich eine MySQL-Datenbank und einen Benutzernamen erstellt haben.
So stellen Sie eine Verbindung über die Befehlszeile her (Bash):
Beispielsweise:
quelle
-p
ist für Passwort und Sie verwenden es, um den Datenbanknamen zu übergeben. Außerdem sollte für das Passwort kein s / w-Leerzeichen-p
und das tatsächliche Passwort vorhanden sein. Verwenden Sie-D
diese Option, um eine Verbindung zu einer bestimmten Datenbank herzustellen.Wenn Sie sich in einer
MySQL
Shell befinden, beenden Sie diese, indem Sie exit eingeben kehren Sie zur Eingabeaufforderung zurück.Beginnen Sie nun
MySQL
mit genau dem folgenden Befehl:Wenn Ihr Benutzername etwas anderes als root ist, ersetzen Sie 'root' im obigen Befehl durch Ihren Benutzernamen:
Anschließend werden Sie nach dem
MySQL
Konto / Kennwort gefragt , und esMySQL
wird kein Problem mit den Zugriffsberechtigungen angezeigt.quelle
@ Nickparsa… du hast 2 Probleme:
1).
mysql -uroot -p
sollte in bash (auch als Terminal bezeichnet) eingegeben werden, nicht in der MySQL-Befehlszeile. Sie beheben diesen Fehler durch Eingabein Ihrer MySQL-Befehlszeile. Jetzt sind Sie wieder in Ihrer Bash / Terminal-Befehlszeile.
2). Sie haben einen Syntaxfehler:
Das Semikolon vor -p muss gehen. Die richtige Syntax lautet:
Geben Sie die richtige Syntax in Ihre Bash-Befehlszeile ein. Geben Sie ein Passwort ein, wenn Sie eines eingerichtet haben. Andernfalls drücken Sie einfach die Eingabetaste. Sie sollten eine ähnliche Antwort erhalten:
Hoffe das hilft!
quelle
Die meisten Entwickler melden sich beim Server an (ich gehe davon aus, dass Sie einen Benutzernamen und ein Kennwort für die MySQL-Datenbank haben) und wechseln dann von Bash zu
mysql> prompt
dem folgenden Befehl (der nicht funktioniert)Was getan werden muss, ist den obigen Befehl in der Bash-Eingabeaufforderung zu verwenden -> Wenn Sie dies tun, werden Sie nach dem Passwort gefragt, wenn es direkt zur MySQL-Eingabeaufforderung und weitergeleitet wird
Dann können Datenbank und Tabelle einzeln erstellt werden
Ich war mit einem ähnlichen Stillstand konfrontiert und teilte die Erfahrung
quelle
Ich hatte den Befehl gemäß den obigen Antworten korrekt. Was ich verpasst habe, war auf der Workbench, wo wir für den Benutzer "Konnektivität vom Host begrenzen" erwähnen. Der Standardwert ist "%" - ändern Sie diesen in "localhost" und stellen Sie anschließend eine gute Verbindung her!
quelle