MySQL: Zugriff für Benutzer „test'@„localhost' außer Root-Benutzer verweigert (Passwortüberprüfung: Ja)
P粉080643975
2023-08-21 13:05:31
<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>
不要将所有数据库的所有权限授予非root用户,这是不安全的(而且您已经有了具有该角色的"root"用户)
此语句创建一个新用户并授予选定的权限。 例如:
请查看文档以查看所有详细的权限
编辑:您可以使用此查询查找更多信息(以"root"身份登录):
查看发生了什么