MySQL:用户'test'@'localhost'的访问被拒绝(使用密码:YES)除了root用户

本教程将介绍MySQL:用户'test'@'localhost'的访问被拒绝(使用密码:YES)除了root用户的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

MySQL:用户'test'@'localhost'的访问被拒绝(使用密码:YES)除了root用户 教程 第1张

问题描述

我遇到了 mysql 非 root/admin 用户的问题,我正在按照以下步骤创建用户及其权限,如果我做错了,请纠正我,

我在 RHEL 5.7 64bit 上安装 mysql,包在下面提到,一旦我完成 rpm install 我们就是

    使用 mysql_install_db 创建 mysql db,然后

    然后启动mysql服务

    使用 mysql_upgrade 我们也在对服务器进行操作.

    creating mysql db using mysql_install_db, then

    starting the mysql service then

    using mysql_upgrade also we are doing to the server.

在此过程之后,我可以以 root 身份登录,但使用非 root 用户我无法登录服务器:

[root@clustertest3 ~]# rpm -qa | grep MySQL
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
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-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 Nov  30 11:09 /var/lib/mysql/mysql.sock

mysql> CREATE USER 'golden'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT USER(),CURRENT_USER();
+----------------+----------------+
| USER()| CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)

[root@clustertest3 ~]# mysql -ugolden -p
Enter password:
ERROR 1045 (28000): Access denied for user 'golden'@'localhost' (using password: YES)

这是我面临的问题,有什么解决办法吗?

推荐答案

不要将所有数据库的所有权限授予非 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;

看看发生了什么

好了关于MySQL:用户'test'@'localhost'的访问被拒绝(使用密码:YES)除了root用户的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。