我面临着mysql非root/admin用户的问题,我按照以下步骤创建用户及其权限,如果我做错了,请纠正我,
我安装mysql
上RHEL 5.7 64bit
,包在下面所提到的,一旦我做了rpm install
我们
mysql_install_db
然后使用创建mysql db
然后启动mysql服务
使用mysql_upgrade
我们也在做服务器.
在此过程之后我可以登录,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';
此语句创建新用户并为其授予选定权限.IE:
GRANT INSERT, SELECT, DELETE, UPDATE ON database.* TO 'user'@'localhost' IDENTIFIED BY 'password';
查看文档以查看详细的所有权限
编辑:您可以使用此查询查找更多信息(以"root"身份登录):
select Host, User from mysql.user;
看看发生了什么
如果您使用远程计算机(示例工作台)等连接到MySQL,请使用以下步骤消除安装MySQL的操作系统上的此错误
mysql -u root -p CREATE USER '<<username>>'@'%%' IDENTIFIED BY '<<password>>'; GRANT ALL PRIVILEGES ON * . * TO '<<username>>'@'%%'; FLUSH PRIVILEGES;
尝试登录MYSQL实例.
这对我有用,可以消除这个错误.
首先我使用以下方法创建用户:
CREATE user user@localhost IDENTIFIED BY 'password_txt';
谷歌搜索后看到这个,我用以下内容更新了用户的密码:
SET PASSWORD FOR 'user'@'localhost' = PASSWORD('password_txt');
然后我可以连接.
尝试:
CREATE USER 'golden'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON * . * TO 'golden'@'localhost'; FLUSH PRIVILEGES;
甚至更好地使用:mysql_setpermission
创建用户
看起来你正试图让一个用户'黄金'@'%'但是一个名为'golden'@'localhost'的不同用户正在阻碍/优先.
执行此命令以查看用户:
SELECT user,host FROM mysql.user;
你应该看到两个条目:
1)user = golden,host =%
2)user = golden,host = localhost
做这些命令:
DROP User 'golden'@'localhost'; DROP User 'golden'@'%';
重启MySQL Workbench.
然后再次执行原始命令:
CREATE USER 'golden'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';
然后,当您尝试登录MySQL时,请按以下方式键入:
点击"测试连接"并输入密码"密码".