1. 知道root密码,需要修改
方法a. 登入数据库来修改
[html] view plain copy
- # mysql -uroot -p /*输入密码进入*/
- /*第一个方式:直接编辑数据库字段*/
- MariaDB [(none)]> use mysql;
- MariaDB [mysql]> UPDATE user SET password=password('newpassword') WHERE user='root';
- MariaDB [mysql]> flush privileges;
- MariaDB [mysql]> exit
- /*第二个方式:修改密码,不用进入mysql*/
- MariaDB [(none)]> SET password for 'root'@'localhost'=password('newpassword');
- MariaDB [(none)]> exit;
方法b. 使用mysqladmin
[html] view plain copy
- /*这样做不好的地方在于密码都在命令行给明文显示出来了*/
- # mysqladmin -uroot -poldpassword password newpassword /*或者*/
- # mysqladmin -uroot -p password newpassword
2. 忘记root密码,需要重置
[html] view plain copy
- # systemctl stop mariadb /*先停掉当前的mysql进程,不然执行下一步说进程已经存在*/
- # mysqld_safe --skip-grant-tables & /*后台直接这个mysql,界面中还会出现日志,直接ctrl+c进入命令行输入*/
- # ps -ef | grep mariadb /*看进程,会突出显示--skip-grant-tables*/
- mysql 3607 3368 0 18:05 pts/0 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql
- --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mariadb/mariadb.log
- --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
- # mysql /*直接进入mysql,不需要密码等,执行第一步中方法a里两种方式中任何一种即可*/
- MariaDB [(none)]> use mysql;
- MariaDB [mysql]> UPDATE user SET password=password('newpassword') WHERE user='root';
- MariaDB [mysql]> flush privileges;
- MariaDB [mysql]> exit; /*这个时候用参数--skip-grant-tables启动的mysql已经会要求输入密码才能进入了*/
- # pkill mysql /*用pkill来杀,kill不死,kill之后自动起来一个*/
- # systemctl start mariadb /*启动正常的mysql*/
本文转载自:https://blog.csdn.net/evandeng2009/article/details/50999706