在安装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