error 1044 (42000):access denied for user ''@'localhost' to database 'mysql' 解决方法

重新安装mariaDB数据库时,出现安装权限问题,中止安装发现居然能够登陆mysql,但是登陆时可以不填密码,操作数据库时会报错:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。我是远程登录数据库的,网上找了一些方法,终于搞定了。
 
后来解决成功,发现是因为mariaDB数据库的user表里,存在用户名为空的账户即匿名账户,导致登录的时候是虽然用的是root,但实际是匿名登录的,通过错误提示里的''@'localhost'可以看出来。解决方法如下:
 
在my.cnf的[mysqld]字段下加入: 

 
[delphi] view plain copy
 
  1. skip-grant-tables  

重启mysql服务,这时的mariaDB不需要密码即可登录数据库
然后进入mariaDB
[sql] view plain copy
 
  1. mysql>use mysql;  
  2. mysql>delete from user where user='';   
  3. mysql>flush privileges;  

删除掉匿名用户,即可以root方式登陆数据库。
运行之后最后去掉my.ini中的skip-grant-tables,重启数据库(systemctl restart mariadb.service)即可。
posted @ 2017-11-26 11:28  enjie  阅读(8308)  评论(0编辑  收藏  举报