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.service
ExecStart=/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服务启动成功后,重新连接,需要用新密码才能连接,此时密码修改成功