微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CentOS忘记mariadb/mysql root密码解决办法

本文不再更新,可能存在内容过时的情况,实时更新请访问原地址:CentOS忘记mariadb/mysql root密码解决办法

这里有两种方式实现修改mariadb root密码

  • mariadb版本:Server version: 10.3.10-MariaDB MariaDB Server
  • 服务器:CentOS Linux release 7.5.1804 (Core)

方式1

1.查看MysqL版本

MysqL --version

如果是MysqL输出结果大概为:

MysqL  Ver 8.0.13 for Linux on x86_64 (MysqL Community Server - GPL)

如果是MariaDB大概为:

MysqL  Ver 15.1 distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

2.停止数据库服务

MysqL

sudo systemctl stop MysqL

MariaDB:

sudo systemctl stop mariadb

3.使用非权限检查模式启动数据库服务

启动:

sudo MysqLd_safe --skip-grant-tables --skip-networking &

无验证模式登录

MysqL -u root

4.修改密码

现在还无法使用ALTER USER命令修改密码,因为grant tables还没有重载。 使用FLUSH PRIVILEGES重载grant tables

MysqL > FLUSH PRIVILEGES;

然后修改密码

  • MysqL版本为MysqL 5.7.6或更新的版本,以及MariaDB版本为MariaDB 10.1.20或更新的版本,使用如下命令:
MysqL> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  • MysqL版本为MysqL 5.7.5 或更老的版本,以及MariaDB版本为MariaDB 10.1.20或更老的版本,使用如下命令:
MysqL> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

如果ALTER USER不起作用,可以使用UPDATE MysqL.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';,然后重载grant tables

5.修改密码

1)关掉进程

关掉进程,MysqL对应命令:

$ sudo kill `cat /var/run/MysqLd/MysqLd.pid`

关掉进程,MariaDB对应命令:

$ sudo kill `/var/run/mariadb/mariadb.pid`

2)重启服务

MysqL使用systemctl重启服务:

$ sudo systemctl start MysqL

MariaDB使用systemctl重启服务:

$ sudo systemctl start mariadb

6.使用新密码登录

$ MysqL -u root -p

参考:https://www.digitalocean.com/community/tutorials/how-to-reset-your-mysql-or-mariadb-root-password

方式2

参考:https://segmentfault.com/a/1190000006051752

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐