提示信息:
在启动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之后就可以看权限设置是否生效。而不必冒太大风险。