千家信息网

数据库 之 更改用户密码和忘记管理员密码解决方法

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,1 正常更改用户密码记得密码的情况下,有以下三个方法修改用户密码:(1) SET PASSWORD [FOR 'user'@'host'] = PASSWORD('cleartext password
千家信息网最后更新 2024年11月24日数据库 之 更改用户密码和忘记管理员密码解决方法

1 正常更改用户密码

记得密码的情况下,有以下三个方法修改用户密码:

(1) SET PASSWORD [FOR 'user'@'host'] = PASSWORD('cleartext password');

(2) UPDATE mysql.user SET Password=PASSWORD('cleartext password') WHERE User='USERNAME' AND Host='HOST';

(3) mysqladmin -uUSERNAME -hHOST -p password 'NEW_PASS' #只能更改管理员密码

例子

使用内键函数password()进行root密码的修改

MariaDB [sunny]> set password for 'root'@'localhost' = password('Pass123456');

MariaDB [sunny]> flush privileges;

使用update更改密码

MariaDB [(none)]> update mysql.user set password=password('Pass1234') where user='test';

使用mysqladmin更改管理员密码

[root@CentOS7A ~]#mysqladmin -uroot -pPass1234567 password 'Pass123456'

2 忘记管理员密码

解决办法的大概步骤:

(1) 启动mysqld进程时,使用--skip-grant-tables和--skip-networking选项;操作前,最好是先禁用3306端口,防止其他用户登录,或者禁止网络登录--skip-networking

CentOS 7:mariadb.service

CentOS 6:/etc/init.d/mysqld

(2) 通过UPDATE命令修改管理员密码;

(3) 以正常 方式启动mysqld进程;

CentOS7忘记管理员密码具体步骤如下

前提,拥有系统级权限,即启停服务,破解管理员密码步骤如下

首先,停止mysql服务器

[root@CentOS7A ~]#systemctl stop mariadb.service

然后修改配置文件

vim /usr/lib/systemd/system/mariadb.serviceExecStart=/usr/bin/mysqld_safe --basedir=/usr --skip-grant-tables --skip-networking

重载文件

[root@CentOS7A ~]#systemctl daemon-reload

重启mqsql

[root@CentOS7A ~]#systemctl restart mariadb

此时,不需要账号和密码就可以登录mysql

[root@CentOS7A ~]#mysql

Welcome to the MariaDB monitor. Commands end with ; or \g.

登录mysql后更改root密码,使用password函数直接修改表mysql.user,操作如下

MariaDB [(none)]> update mysql.user set password=PASSWORD('Pass12345678') where user="root";

密码更新完成后,停止mysql服务,然后重新更改配置文件,把skip选项去掉后重新启动

[root@CentOS7A ~]#systemctl stop mariadb;[root@CentOS7A ~]#vim /usr/lib/systemd/system/mariadb.service ExecStart=/usr/bin/mysqld_safe --basedir=/usr

重载文件

[root@CentOS7A ~]#systemctl daemon-reload[root@CentOS7A ~]#systemctl restart mariadb

mysql服务启动成功后,重新连接,需要用新密码才能连接,此时密码修改成功


0