Linux下重置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密码

已测试 Redhat 5 有效

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

service mysql restart

或,

/etc/init.d/mysql restart

MySql5.6操作时报错:You must SET PASSWORD before executing this statement解决
mysql>  SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.03 sec)

mysql> create database roger;
Query OK, 1 row affected (0.00 sec)


也就是用mysql>  SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!

 

参考文章:

http://www.vpser.net/manage/linux-reset-mysql-root-password.html

http://hudeyong926.iteye.com/blog/1056415

http://www.metsky.com/archives/556.html

猜你喜欢

转载自oywl2008.iteye.com/blog/2170392