centos数据库mysql再次登录不用输入密码及不显示已创建的数据库问题解决

编辑
  • 内容
  • 评论
  • 相关

在centos下搭建mysql数据库一切正常而重启服务器后登录mysql数据库出现了如下的问题

当输入mysql -u root -p 回车,输入已设置的密码时直接提示密码错误,而直接以密码为空时回车却能直接进入mysql数据库。这很容易给人以不安全的感觉,然而即便登录了数据库,在执行show databases;时你会发现之前创建的数据库没了,假设之前创建的数据库名称为test,若直接use test;选择自己创建的数据库时则出现如下的报错。

  mysql>use test;
  mysql>ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'test'

经上网查是因为默认的mysql数据库存在一个空用户,将其删除即可解决问题。

  mysql> delete from mysql.user where user='';

不过执行此语句时又报1142错误:

mysql> ERROR 1142 (42000): DELETE command denied to user ''@'localhost' for table 'user'

该问题是因为root没有select权限引起的。

解决,赋予root权限。

停止MySQL服务

service mysqld stop

加参数启动mysql

 /usr/bin/mysqld_safe --skip-grant-tables &

接下来就可以正常访问了

然后

mysql> use mysql;

删除空用户

mysql> delete from user where user = '';

最后刷新权限表

mysql> flush privileges;

重启数据库解决mysql再次登录不用输入密码及不显示已创建的数据库的问题。

service mysqld restart

IT技术资料分享-个人整理自互联网

centos数据库mysql再次登录不用输入密码及不显示已创建的数据库问题解决