上次在服务器上搞了个 RAP 服务,主要是为了给前后端写接口以及mock数据提供一个统一的平台。说实话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上将多余的两个空名字用户删除掉。
问题解决。
顺便提一句,经过高人点拨之后,服务器上的东西出问题,应该考虑的优先解决方案是去找各种各样日志,然后根据错误日志去排查错误。