转载

解决Mysql登录之后不显示数据库

上次在服务器上搞了个 RAP 服务,主要是为了给前后端写接口以及mock数据提供一个统一的平台。说实话RAP还是挺好用的,不过在使用了一段时间后,我发现了几个使用不太舒服的地方,

  • 定制好的组织结构。其实很多时候这种团队->产品线->分组->项目这种组织结构可能会对我写接口造成干扰。我希望的是最好能够自由定制组织。
  • 功能不完全的mock.js引擎。rap中使用的mock数据引擎是 mock.js ,但是并没有具备所有的功能。在实际mock数据的场景中,有些稍微复杂点的数据在mock起来还是有点难度的。
  • 可视化的接口编写。有的人可能认为这是rap的优势,不过我个人对可视化的接口编写并不十分感兴趣,从我个人角度来说,我更倾向使用标记语言,比如markdown、yaml等,去写接口文档。
  • 可视化的编写时,因为是在表格中编写,当某些接口字段需要大量的描述时,表格给的内容可能会放不下,给人一种非常别扭的感觉。
  • 独占式的接口编写。rap不支持多人对同一个项目中的接口同时进行改动。我个人猜测可能是实现起来比较麻烦,所以作者这里可能就偷懒了,直接暴力的加锁来防止别人同时修改。当想在同一个项目中同时编辑不同的功能模块就会加锁,这个在多人合作的项目中有非常大的限制。

吐槽完毕。下面说一下今天遇到的一个问题。

之前跑的好好的rap服务,突然在编辑后不能保存了。页面提示“发生了严重错误,保存现场后联系管理员”。当时我就懵了,我就是管理员啊,我也不知道出了啥问题。

ssh上服务器之后,查看了一下rap服务需要的进程都在活的好好的,一眼实在没看出啥问题。

采取另一种思路,我打开了chrome的开发者功能,追踪一下保存时调用的接口,看接口返回的结果,说什么JDBC数据库出问题了。

看到这里我更懵了,数据库出啥问题了?二话不说,登录mysql看看吧。

登录mysql之后,我 show databases; 之后,令我震惊的是,就一个 infomation_schema 数据库。我的天,其他的数据库呢?这什么灵异事件?

我在本地使用Sequel Pro远程链接mysql之后,奇怪的是,发现其他的数据库都在啊。这是怎么回事?

在服务器的命令行上 use mysql; 时,给了一个错误信息,Access denied for user ‘’@’localhost’ to database ‘mysql’。

localhost前有一个空用户?这是怎么回事?我查阅了很多资料,实在不知道这个空名字的用户到底是如何生成的。

最后,google上有人说,要将这些空名字的用户都删掉。因为服务器上的命令行中没有mysql数据库的权限,我只能在Sequel Pro上将多余的两个空名字用户删除掉。

问题解决。

顺便提一句,经过高人点拨之后,服务器上的东西出问题,应该考虑的优先解决方案是去找各种各样日志,然后根据错误日志去排查错误。

原文  http://blog.gejiawen.com/2016/06/14/
正文到此结束
Loading...