1、编辑MySQL的配置文件:my.ini
一般在MySQL安装目录下有my.ini即MySQL的配置文件。
在此配置文件的最后添加如下一行:
skip-grant-tables
保存退出编辑。
2、然后重启MySQL服务
在命令行下执行:
net stop MySQL
net start MySQL
3、设置新的ROOT密码
然后再在命令行下执行:
MySQL -u root -p MySQL或mysql -u root -p
直接回车无需密码即可进入数据库了。
此时,在命令行下执行 use mysql;
现在我们执行如下语句把root密码更新为:
update user set password=PASSWORD("root") where user='root';
(注意:此时不用使用mysqladmin -u root -p password '你的新密码'这条命令修改密码,因为'skip-grant-tables'配置,
不信的话,你可以试用一下,它肯定会报如下所示的错误:
F:\Documents and Settings\long>mysqladmin -u root -p password 'root'
Enter password:
Warning: single quotes were not trimmed from the password by your command
line client, as you might have expected.
mysqladmin:
You cannot use 'password' command as mysqld runs
with grant tables disabled (was started with --skip-grant-tables).
Use: "mysqladmin flush-privileges password '*'" instead)
exit 退出MySQL。
4、还原配置文件并重启服务
然后修改MySQL配置文件把刚才添加的那一行'skip-grant-tables'删除。
再次重起MySQL服务,密码修改完毕。
MYSQL内部修改
登录mysql数据库:mysql -u用户名 -p密码 数据库名,例如:mysql -uroot -p123456 mysql;
修改密码:UPDATE user SET Password = password ( '新密码' ) WHERE User = 'root'
MYSQL外部修改
root用户无密码,设置密码为123456,执行:
mysqladmin -u root password 123456
root有密码(123456),则修改密码为654321,执行:
mysqladmin -u root -p123456 password 654321
忘记密码修改:
使用安全模式启动,配置如下:
vi /etc/my.cnf 添加:--skip-grant-tables(修改完密码后去掉或注释掉#重启服务)
重新启动MYSQL:service mysqld restart
或者不修改my.cnf直接执行:./bin/mysqld_safe --skip-grant-tables &
无需密码直接登录:mysql -uroot mysql
重置密码:UPDATE user SET Password = password ( '新密码' ) WHERE User = 'root'