提示信息:
在启动mysql时不启动grant-tables,授权表,--skip-grant-tables。
步骤:
1、停掉所有mysql或mariadb服务:
~]#service mysqld stop(CentOS6) ~]#systemctl stop mysqld.service(CentOS7) 或者 ~]#pkill mysql
2、命令行启动:
~]#/bin/mysqld_safe --skip-grant-tables &
3、进入mysql库,用户信息存放在mysql库下user表:
MariaDB [none]>use mysql;
4、使用password()修改密码:
MariaDB [mysql]>update user set password=password(‘your 密码’) where user=’root’;
5、即时生效:
MariaDB [mysql]>flush privileges;
6、退出:
MariaDB [mysql]>exit;
7、此时设置完成,正常情况可以登录:
~]#mysql -uroot -p
注释:
flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。