MySQL-Mysql授权失败问题
今天用mysql的root账号登录后给一个账号授权,结果报错ERROR 1045 (28000)错误:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'XXXXXXX'@'10.18.250.5' IDENTIFIED BY '123456';
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
找到原因了,是root账号的mysql库的权限有一次清空了权限表,被意外干掉了,重新添加了这个权限就行了:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '2123131' WITH GRANT OPTION
GRANT ALL PRIVILEGES ON `mysql`.* TO 'root'@'localhost'
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'xxxx'@'10.18.250.5' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
GRANT ALL PRIVILEGES ON . TO 'XXXXXXX'@'%' IDENTIFIED BY '*260B566DA78945AB6EA332B501AB4EBCB0460D1BF';
在grant授权的时候``不是用password这个函数的 因为grant会自动加上去的`
手册说明
用INSERT使用PASSWORD()函数是为了加密密码。GRANT语句为你加密密码,因此不需要PASSWORD()。
设置密码官方提供四种
1:grant usage on .................
2: mysqladmin -h127.0.0.1 -u用户名 "密码" "新密码"
3: set password for '用户名'@''[host|domain|%]' 如果是自己的账号改变密码 不需要加 for 用户
4:改数据库 就是你上面的情况` 修改密码 必须 flush privileges;告诉服务器重读下授权表
你第一步应该没有执行成功