方法1:
1,可以在配置文件里加上 skip-grant-tables --注意写到[mysqld]参数组下,表示跳过授权
2,重启MySQL再登录就不需要密码,进去改密码,改完后,直接flush privileges就可以使用新密码来登录了
(例:update mysql.user set password=password("123") where user="root" and host="localhost"; )
3,改完后记得去掉配置文件例的skip-grant-tables,重新启动
4,再使用新的密码登录
方法2:
再MySQL没启动的情况下
[root@mysql ~]# mysqld_safe --skip-grant-tables & --用这命令启动再可直接登陆就不用密码了,进去后就可以修改密码
如出现找不到命令的报错 -bash: mysqld_safe:command not found
进入mysql目录:cd /usr/local/mysql/ (我这是源码包安装的)
再运行: bin/mysqld_safe --skip-grant-tables &
修改密码三种方法
mysqladmin -u root password ‘456‘ -p123
--明文方式修改密码,就需要原密码(456是新密码,原密码是123)
mysqladmin -u root password -p --不想明文方式修改密码
Enter password: --隐藏输入原密码
New password: --隐藏输入新密码
Confirm new password: --隐藏确认新密码
第二种:
进入数据库内修改密码
1、update mysql.user set password=password("789") where user="root" and host="localhost"; --使用sql语句在数据库内部直接修改用户密码表
2、flush privileges; --修改过密码后都要记得刷新权限表
第三种:
进入数据库内修改密码
set password for ‘root‘@‘localhost‘=password(‘123‘); --使用此操作语句也可以修改密码,修改后不需要刷新权限表
原文地址:http://blog.51cto.com/13744837/2116840