解决MariaDB无密码就可以登录,且无法修改密码的问题

问题
最近安装了MariaDB,MariaDB其实就是mysql的一个开源版本,语法和mysql是一致的,今天安装了MariaDB发现一输入mysql就能进入,是因为默认root账号没有密码,想修改密码,发现输入下面的命令都没效果:

mysqladmin -u用户名 -p旧密码 password 新密码  
mysql> use mysql;  
mysql> update user set password=password('123') where user='root' and host='localhost';  
mysql> flush privileges;  
mysql> set password for root@localhost = password('123'); 

但是发现多次尝试都没有成功修改过,一输入mysql还是没有密码的状态

解决办法
经过长时间的搜索,总算是找到了解决办法
我们的user信息都存储在mysql数据库的表里,密码被加密

1.定位

对比正常的mysql

mysql> use mysql; 
mysql> select user, plugin from mysql.user where plugin = 'mysql_native_password';
+-----------+-----------------------+
| user      | plugin                |
+-----------+-----------------------+
| root      | mysql_native_password |
+-----------+-----------------------+

我们的mysql

 MariaDB [(none)]> select user, plugin from mysql.user;
 +------+-------------+
 | user | plugin      |
 +------+-------------+
 | root | unix_socket |
 +------+-------------+

2.更改
不太特别了解这个unix_socket 是干什么用,但是把他改了会成功

MariaDB [(none)]> use mysql
MariaDB [(none)]> UPDATE mysql.user SET authentication_string = PASSWORD('mypassword'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;

3.验证

MariaDB [(none)]> select user, plugin from mysql.user

发现plugin这一项被改成了mysql_native_password;
然后退出MySQL,执行以下命令重启MySQL:

service mysql restart

再一次进入mysql会提示需要输入密码了

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值