当忘记root密码或者刚装完MySQL5.7时候的root密码是随机生成,应该如何重置设置root密码有效?
******************************************
系统环境: Ubuntu x64
mysql version: 5.7
******************************
(1)首次应该停止Mysqld服务。(权限不足时,切root)
#service mysqld stop
(mysqld 是在安装后将mysql安装目录下的子目录support-files/mysql.server 的服务名,其实是用户在安装时指定的。)
(2)将所有关于mysqld的进程清理:(pid 是指查找出来的mysqld进程号)
#ps -ef | grep mysqld
#kill -s 9 pid(mysqld)
#mysqld_safe --skip-grant-tables &
回车确定。也可以按照(2)命令查看mysqld-safe进程是否成功运行。
(4)进入MySQL(注意现在是没有权限操作MySQL表的):
#mysql -uroot
(自己适当按照情况加上-h )
(5)这个时候就可以修改root密码:(注意MySQL5.7的user表的密码字段改变了)
可以查看user表字段:
mysql>use mysql;
mysql>desc user;
设置密码:(code为自定义密码)
Mysql> update user set authentication_string = PASSWORD(‘code’) where user=’root’;
*刷新权限:
mysql>flush privileges;
mysql>quit
退出。
(6)重新开启mysqld服务,root登录:
#service mysqld start
#mysql -hlocalhost -uroot -p (登录MySQL)
Enter password:
输入自定义的密码。进入MySQL
(7)再一次在mysql server 模式确定设置密码:
当你操作数据库的时候,MySQL会提示:
ERROR1820(HY000):YoumustresetyourpasswordusingALTERUSERstatementbeforeexecutingthisstatement.
你需要在确定一次密码:mysql>SET PASSWORD=PASSWORD(‘code’);
至此,root密码设定成功。主要注意的就是最新的MySQL5.7密码安全的设置有些小小改动,安装过程参照README.TXT也是可以知道小变动。