[日常填坑]mysql登陆后只出现information_schema和test两个数据库

在服务器只能使用【无密码】登陆,即

要么直接mysql进入数据库,要么mysql -u root -p,然后不写密码回车进入数据库(但是之前一开始有设置密码了!!!之前是按这个步骤来的),

然后,登陆后只能看到information_schema和test两个数据库,而且没了很多权限。

另外,能在本地连接远程服务器数据库可以使用root和密码登陆连接,能看到mysql数据库的user表。

也就是说,在服务器的数据库的root已经失去了超级权限!!!

 

原因:

一开始安装mysql的时候没有把localhost的空用户删除。

导致root有两种登录方式,一个是基于localhost的,另一个就是在其它任意主机登录的,

你设置的密码是基于IP地址登录时的密码,而你在本机运行mysql -u root -p时,默认检查的是localhost方式

 

如何解决:

解决具体操作步骤:

第一种方法:

在服务器中,

先关闭mysql:service mysqld stop

然后,mysqld_safe --skip-grant-tables

 

(如果是mariadb,则使用systemctl restart mariadb.service)

打开mysql

删掉已经存在了host为localhost的记录,则先(一定要一开始就!!!)删除该记录,delete from user where host='localhost';

 

第二种方法:

如果你已经在本地主机远程连接数据库的root用户,

那么直接在mysql.user里面删除localhost的空用户

然后再服务器上面重启数据库服务即可

 

 

 

posted @ 2018-05-17 21:54  hoanfir  阅读(6323)  评论(0编辑  收藏  举报