提示信息:

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