给新机器Ubuntu安装的Mariadb后无法登录,通过网上各种方法修改root用户密码,仍然无法解决,耗费几个小时!

经过看日志和查手册,发现原因如下:

  1. ubuntu确实安装没有启用root用户,所以没有root用户密码,而新安装的mariadb使用的系统root的密码(初始安装后)
  2. 通过原来的方法重置password无效(原因就是采用了unix_socket认证)

那么,解决方法如下: 直接进入root用户下,就可以免密码登录!

对于ubuntu而言,需要启用root用户密码,方法如下:

sudo passwd1

输入sudo的密码后,再次输入两次root用户密码后即可。

然后,

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

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

// 切换到root用户, 无需密码进入Mysql update mysql.user set plugin='mysql_native_password' where user='root'; update mysql.user set password=password("您的密码") where user='root'; FLUSH PRIVILEGES;1 2 3 4

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

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

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

第一我去跟安装正常的mysql来比较下,如下

1 正常mysql
2 mysql> select user, plugin from mysql.user where plugin = 'mysql_native_password';
3 +-----------+-----------------------+
4 | user | plugin |
5 +-----------+-----------------------+
6 | root | mysql_native_password |
7 +-----------+-----------------------+
8 8 rows in set (0.00 sec)
1 不正常的
2
3 MariaDB [(none)]> select user, plugin from mysql.user;
4 +------+-------------+
5 | user | plugin |
6 +------+-------------+
7 | root | unix_socket |
8 +------+-------------+
9 1 row in set (0.00 sec)

看到这里应该发现问题了,按照正常的修改就行了

如下:

 1 sudo service mysql stop
2 sudo mysqld_safe --skip-grant-tables
3 进去mysql执行如下命令:
4 MariaDB [(none)]> UPDATE mysql.user SET authentication_string = PASSWORD('mypassword'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
5 MariaDB [(none)]> FLUSH PRIVILEGES;
6 验证:
7 MariaDB [(none)]> select user, plugin from mysql.user
8 -> ;
9 +------+-----------------------+
10 | user | plugin |
11 +------+-----------------------+
12 | root | mysql_native_password |
13 +------+-----------------------+
14 1 row in set (0.01 sec)
15
16 先杀死mysql kill -9 pid
17 启动:
18 sudo service mysql start

最后验证下:需要密码了

root@ubuntu:~# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
root@ubuntu:~#

最新文章

  1. Java提高篇——理解String 及 String.intern() 在实际中的应用
  2. JavaScript中的事件对象
  3. JSP 属性范围
  4. 将本地项目上传到Github
  5. nginx修改内核参数
  6. Introducing RecyclerView(一)
  7. easyui-textbox
  8. bzoj2597
  9. 那些年不错的Android开源项目(转)
  10. 纯CSS3之五子棋(黑白棋)画法
  11. Object-C知识点 (一) 常用知识点
  12. Build path contains duplicate entry
  13. 014_IP专项研究监控
  14. eclipse发布后在tomcat下没有文件夹,服务器的Server locations不能修改
  15. ubunta apt install error
  16. jmeter线程组之间传参
  17. UI基础一:简单的BOL查询
  18. windows下pem转ppk
  19. WAV与PCM
  20. 20145333茹翔 Exp7 网络欺诈技术防范

热门文章

  1. Java自学-操作符 位操作符
  2. webpack4引入JQuery的两种方法
  3. Celery:Optimizing
  4. ABAP开发环境语法高亮的那些事儿
  5. Node.js 项目中解决 SQL 注入和 XSS 攻击
  6. (摘录笔记)JAVA学习笔记SSH整合搭建项目
  7. Python学习日记(二十七) 反射和几个内置函数
  8. 【转】vsftpd用户登入不进去问题
  9. django的缓存实例应用
  10. vue父组件触发子组件方法