一下午过得很不开心,遇到一个相当的坑爹问题, 是关于mysql授权的问题….   真的是把我坑的死去活来的….    我都开始怀疑我以前的运维观了…   


原文链接是,http://xiaorui.cc/?p=1440


mysql是5.7的版本,这版本是支持json的,同事用这版本做过一定的测试。 随后我在这上面创建了几个库,并且做了权限的授予,但是发现密码总是不对,更甚至有时候是可以空密码进入的。 我当时以为是5.7本身的问题….    都要把mysql5.7骂道天了 。  

折腾了半天有各种的途径的update和insert账号密码,但还是不能用密码登录, 这时候,真的伤心欲绝,都没心情吃公司那下午茶水果了….    

这时候,我已经要疯狂了,立马把mysql5.7干掉,直接上手编译安装mysql5.6 ,但是一会又出现了这问题。 后来跟以前乐视的同事 徐长华(现在是在搜狐做dba工作) 聊了下,才解决这问题…. 

[ruifengyun@bj-buzz-dev01 ~]$ mysql -ubuzz -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘buzz’@'localhost’ (using password: NO)
[ruifengyun@bj-buzz-dev01 ~]$ mysql -ubuzz -p

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set password=password(’123123′) where user=’buzz’;
Query OK, 0 rows affected (0.02 sec)
Rows matched: 1  Changed: 0  Warnings: 0

mysql> SHOW GRANTS FOR buzz\G
*************************** 1. row ***************************
Grants for buzz@%: GRANT USAGE ON *.* TO ‘buzz’@'%’ IDENTIFIED BY PASSWORD ‘*E56A114692FE0DE073F9A1DD68A00EEB9703F3F1′
*************************** 2. row ***************************
Grants for buzz@%: GRANT ALL PRIVILEGES ON buzz_master.* TO ‘buzz’@'%’
2 rows in set (0.00

mysql> select user,host,password from mysql.user order by user,host;
+————-+—————+——————————————-+
| user        | host          | password                                  |
+————-+—————+——————————————-+
|             | bj-buzz-dev01 |                                           |
|             | localhost     |                                           |
| buzz        | %             | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
| root        | 127.0.0.1     | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| root        | ::1           |                                           |
| root        | bj-buzz-dev01 |                                           |
| root        | localhost     | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| weixin_user | %             | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
| weixinuser  | %             | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
+————-+—————+——————————————-+
9 rows in set (0.00 sec)

解决方法,删除为空的用户授权:

mysql>
mysql>
mysql> drop user ”@’localhost’;
Query OK, 0 rows affected (0.04 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> drop user ”@’bj-buzz-dev01′;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql>
mysql> select user,host,password from mysql.user order by user,host;
+————-+—————+——————————————-+
| user        | host          | password                                  |
+————-+—————+——————————————-+
| admin       | %             |                                           |
| buzz        | %             | *E56A114692FE0DE073F9A1DD68A00EEB9703F3F1 |
| root        | 127.0.0.1     | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| root        | ::1           |                                           |
| root        | bj-buzz-dev01 |                                           |
| root        | localhost     | *B335B8949A6AF011EA3D9F37F046C6E413BC23FB |
| weixin_user | %             | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
| weixinuser  | %             | *DF81D3DE3ABC1508BFB0F1D4DE9C2EECBAE43E4F |
+————-+—————+——————————————-+
8 rows in set (0.00 sec)

现在好了,是因为有mysql库的user表有空值的情况…. 貌似mysql进行认证的时候,匹配都了空值,所以就直接能进入myql里面了。   再次感谢 长华,要没他,我估计今天要折腾疯狂了… 





对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!
{ 2000人qq大群内有各厂大牛,常组织线上分享及沙龙,对高性能及分布式场景感兴趣同学欢迎加入该QQ群 }

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!
暂无相关产品

1则回应给“关于mysql授权账号权限时的空密码坑爹问题”

  1. 雨人说道:

    我曾经也遇到过这样的问题

发表评论