1、知道原密码的情况下,变更密码
(1)使用root登录,修改mysql数据库的user表,使用password函数进行密码加密
update user set password=password('new passwd') where user='username';
(2)注意修改完成后需要刷新权限
flush privileges;
2、忘记root账户密码,密码找回
(1)修改配置文件,配置MySQL不需要密码登录
- Linux中:配置文件位置为:/etc/my.cnf
- Windows中:配置文件位置为:X:\MySQL\MySQL Server5.1\my.ini
修改,找到mysqld,在它的下一行,添加skip-grant-tables,重启MySQL服务
(2)此时进入MySQL就可以免密登录,登录成功后,按照1中所述步骤修改root用户的密码
(3)删掉配置文件中添加的skip-grant-tables,并重启MySQL服务
3、MySQL中的加密函数
(1)MySQL中password函数:经常用于对用户注册的密码进行加密处理(不可逆)
mysql 4.1之后的版本中,密码采用password()函数哈希后保存。具体保存在mysql数据库user表的authentication_string字段中。
相应文件为/mysqld/mysql-5.7/data/mysql/user.MYD。
(2)MySQL中md5函数:经常用于对普通的数据进行加密,例如还是对字符串(不可逆)
MD5函数是将一个任意长度的字符串变换成一个一定长的十六进制数字串。而且MD5加密函数也是不可逆的。
(3)ENCODE(被加密字符串“,”加密字符串“)函数,而且加密的结果是一个二进制数,必须使用blob类型的字段来保护它。
ENCODE(str,key) 使用key作为密钥加密字符串str,调用ENCODE()的结果是一个二进制字符串,它以BLOB类型存储
DECODE(str,key) 使用key作为密钥解密加密字符串str