首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:拒绝访问用户'test'@'localhost‘(使用密码: YES),根用户除外

问MySQL:拒绝访问用户'test'@'localhost‘(使用密码: YES),根用户除外
EN

Stack Overflow用户
提问于 2013-12-03 22:10:01
回答 17查看 645K关注 0票数 109

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

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

  1. 使用mysql_install_db创建mysql数据库,然后
  2. 启动mysql服务,然后使用mysql_upgrade执行
  3. ,我们也在对服务器执行此操作。

在此过程之后,我可以作为root登录,但对于非根用户,我无法登录到服务器:

代码语言:javascript
复制
[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)

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

EN

回答 17

Stack Overflow用户

发布于 2013-12-03 22:17:42

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

代码语言:javascript
复制
GRANT <privileges> ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';

此语句创建新用户并向其授予选定的权限。即:

代码语言:javascript
复制
GRANT INSERT, SELECT, DELETE, UPDATE ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';

查看docs以查看所有权限的详细信息

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

代码语言:javascript
复制
select Host, User from mysql.user;

看看发生了什么

票数 64
EN

Stack Overflow用户

发布于 2014-09-09 00:28:51

如果您正在使用远程计算机(示例工作台)等连接到MySQL,请使用以下步骤在安装了MySQL的操作系统上消除此错误

代码语言:javascript
复制
mysql -u root -p

CREATE USER '<<username>>'@'%%' IDENTIFIED BY '<<password>>';
GRANT ALL PRIVILEGES ON * . * TO '<<username>>'@'%%';
FLUSH PRIVILEGES;

尝试登录MYSQL实例。

这对我消除这个错误起到了作用。

票数 42
EN

Stack Overflow用户

发布于 2013-12-03 22:13:13

尝试:

代码语言:javascript
复制
CREATE USER 'golden'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'golden'@'localhost';
FLUSH PRIVILEGES;

或者更好地使用:mysql_setpermission来创建用户

票数 29
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20353402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档