MySQL: Zugriff für Benutzer „test'@„localhost' außer Root-Benutzer verweigert (Passwortüberprüfung: Ja)
P粉080643975
P粉080643975 2023-08-21 13:05:31
0
1
479
<p>Ich habe ein Problem bei der Verwendung eines Nicht-Root-/Administratorbenutzers von MySQL. Ich habe die folgenden Schritte ausgeführt, um den Benutzer und die Berechtigungen zu erstellen. Bitte korrigieren Sie mich, wenn ich etwas falsch gemacht habe: </p> <p>Ich habe <code>mysql</code> auf <code>RHEL 5.7 64bit</code> installiert. Das Installationspaket lautet wie folgt, sobald ich die <code>rpm-Installation</code> abgeschlossen habe, wir werden</p> <ol> <li>Verwenden Sie <code>mysql_install_db</code> um eine MySQL-Datenbank zu erstellen, dann </li> <li>Starten Sie den MySQL-Dienst, dann</li> <li>Die Verwendung von <code>mysql_upgrade</code> funktioniert auch auf dem Server. </li> </ol> <p>Nach diesem Vorgang kann ich mich mit <code>root</code> anmelden, aber nicht mit einem Nicht-Root-Benutzer beim Server anmelden: </p> <pre class="brush:php;toolbar:false;">[root@clustertest3 ~]# rpm -qa | MySQL-client-advanced-5.5.21-1.rhel5 MySQL-server-advanced-5.5.21-1.rhel5 [root@clustertest3 ~]# cat /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Standardmäßig wird das alte Passwortformat verwendet, um die Kompatibilität mit MySQL 3.x zu gewährleisten # Clients (diejenigen, die das Kompatibilitätspaket mysqlclient10 verwenden). alte_passwörter=1 # Es wird empfohlen, symbolische Links zu deaktivieren, um verschiedene Sicherheitsrisiken zu vermeiden. # Um dies zu tun, entkommentieren Sie diese Zeile: # symbolische-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [root@clustertest3 ~]# ls -ld /var/lib/mysql/mysql.sock srwxrwxrwx 1 mysql mysql 0 30. November 11:09 /var/lib/mysql/mysql.sock mysql> CREATE USER 'golden'@'%' IDENTIFIED BY 'password'; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%'; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> SELECT USER(),CURRENT_USER(); +----------------+----------------+ |. USER() |. CURRENT_USER() | +----------------+----------------+ |. root@localhost |. root@localhost | +----------------+----------------+ 1 Reihe im Satz (0,00 Sek.) [root@clustertest3 ~]# mysql -ugolden -p Passwort eingeben: FEHLER 1045 (28000): Zugriff für Benutzer „golden“@„localhost“ verweigert (mit Passwort: JA)</pre> <p>Das ist das Problem, auf das ich gestoßen bin. Gibt es eine Lösung? </p>
P粉080643975
P粉080643975

Antworte allen(1)
P粉301523298

不要将所有数据库的所有权限授予非root用户,这是不安全的(而且您已经有了具有该角色的"root"用户)

GRANT <privileges> ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';

此语句创建一个新用户并授予选定的权限。 例如:

GRANT INSERT, SELECT, DELETE, UPDATE ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';

请查看文档以查看所有详细的权限

编辑:您可以使用此查询查找更多信息(以"root"身份登录):

select Host, User from mysql.user;

查看发生了什么

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!