MariaDB安装后无法登录问题的解决

2019-11-30  本文已影响0人  庭院游鹰

本文的初衷仅供自己做备忘笔记, 内容大多从网上搜集和整理, 并非都是自己原创.
参考的来源我会在后面注明, 对于可能遗漏的来源, 还请相关原创作者提醒, 非常感谢.

参考来源:
https://blog.csdn.net/yin138/article/details/80293533
https://mariadb.com/kb/en/library/authentication-plugin-unix-socket/
https://dev.mysql.com/doc/refman/5.6/en/pluggable-authentication.html

环境&版本

给新机器Ubuntu安装的Mariadb后无法登录,表现为:

这里再次感谢参考来源里csdn的这位博主, 解决了困扰我2天的问题.

经过看日志和查手册,发现原因如下:
1. ubuntu确实安装没有启用root用户,所以没有root用户密码,而新安装的mariadb使用的系统root的密码(初始安装后)
2. 通过原来的方法重置password无效(原因就是采用了unix_socket认证)

解决方法

直接进入root用户下,就可以免密码登录!
对于ubuntu而言,需要启用root用户密码,方法如下:

sudo passwd

输入sudo的密码后,再次输入两次root用户密码后即可。
然后切换至root账号:

xx>su - root
root>mysql -u root //直接回车就可以进入,无需密码,无论什么密码也行,因为他不需要!
mysql>

如果,你希望采用原来的mysql密码方式,需要修改认证插件,方法如下:

update mysql.user set plugin='mysql_native_password' where user='root';
update mysql.user set password=password("您的密码") where user='root'; 
FLUSH PRIVILEGES;

这样就可以在任何用户下访问mysql了。

为啥要升级成缺省为unix_socket呢?

对于CentOS,RedHat而言,使用root用户时,无需密码登录。
而且,也符合安全准则,新版本的MySQL密码会在日志中输出,MariaDB以前保持空密码,现在意味着,用root用户,无需登录。

上一篇 下一篇

猜你喜欢

热点阅读