Linux下重置MySQL ROOT密码的几种方法

发布时间:2020-01-03编辑:脚本学堂
安装MYSQL时,默认会弹出密码配置界面,显示设置root用户密码,但是一旦忘记就只能想办法重设了。

安装mysql时,默认会弹出密码配置界面,显示设置root用户密码,但是一旦忘记就只能想办法重设了。
重设ROOT密码有如下几种方法。

方法一、使用mysqladmin
 

复制代码 代码如下:
# ./mysqladmin -u root password 'newpassword'
# ./mysqladmin -u root -h host_name password 'newpassword'
Usually mysqladmin's path is /usr/bin, host_name is your real host name, e.g. localhost.localdomain.
password后面的引号不是必须的,不过如果密码包含空格或者一些特殊的符号,需要用引号。

方法二、利用mysql SET PASSWORD命令
 

复制代码 代码如下:
# ./mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpassword');

方法三、使用UPDATE语句更新user表重置ROOT密码
 

复制代码 代码如下:
# ./mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpassword') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;

方法四、启动MYSQL的安全模式重置ROOT密码

1、停止MySQL进程
执行:/etc/init.d/mysql stop,具体位置可能随系统不同而不同,也可能是/etc/init.d/mysql,/etc/init.d/mysqld等路径,或下面直接终止(最好不要使用下面这个强制语句):
 

复制代码 代码如下:
# killall -TERM mysqld

2、以安全模式启动MySQL
 

复制代码 代码如下:
# mysqld_safe –skip-grant-tables &
或,
# mysqld_safe --skip-grant-tables >/dev/null 2>&1 &
提示:mysqld_safe一般在/usr/local/mysql/bin/目录下。

3、登陆MYSQL
完成上述两步以后就可以不用密码进入MySQL了
 

复制代码 代码如下:
# mysql -u root
或,
# /usr/local/mysql/bin/mysql -u root mysql

4、更改ROOT密码
以下几句依次执行:
 

复制代码 代码如下:
use mysql;
select host, user, password from user;
update user set password=password(“newpassword”) where user=”root”
flush privileges;

5.退出控制台,重启MYSQL服务
复制代码 代码如下:
service mysqld restart
或,
/etc/init.d/mysql restart