mysql建库别人看不到_Mysql权限导致实例无法看到

起因:那天同事杰少为了linux下的pdf2html转化装了一个字体,然后重启了主机,结果就导致mysql进控制台后 show databases只能看到

+---------------------------+

| database |

+---------------------------+

| information_schema |

| test |

+---------------------------+

由于当天晚上是要发版本的,如果实例没了,晚上就不用下班了,这个mysql里放了两个子系统的实例,要是真的missing了,就得准备全量脚本了.......

当时我的心情是这样的

6f5daf6b8aba

Paste_Image.png

分析原因

鉴于对应的环境依然能正常使用,初步判断实例数据仍然还在,只是看不到,由于当前是使用root登录的控制台,所以有可能是重启主机导致了mysql的root用户权限错乱.

解决方法

第一步:

//关闭mysql

service mysql stop;

//进入mysql安全模式

mysqld_safe --skip-grant-tables;

第二步: 另开一个ssh连接进入mysql

[root@localhost ~]#mysql

Welcome to the MySQL monitor. Commands end with ;

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;

//此时你是可以看到所有的实例的

//然后修改mysql实例的user表

mysql> use mysql;

//如果已经有host为localhost的root用户记录,则想删除该记录

mysql> INSERT INTO `user` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);

mysql> flush privileges;

第三步:操作完成后关闭两个ssh连接, 重开一个ssh连接后重启mysql

service mysqld start;

总结

** linux下很多灵异问题都是权限不够导致的,这次笔者遇到的问题就是mysql少了一个host为localhost的root用户数据**

PS

还有一种情况也会导致该问题,那就是已经存在host为localhost的root用户,但是数据里所有的权限都是N而不是Y,此时按照上述步骤执行一遍用update即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值