推荐答案
1. 在my.ini中配置explicit_defaults_for_timestamp参数
如我的系统: D:\Program Files\mysql-5.7.17-winx64\my-default.ini 作为my.ini文件,增加以下配置
[mysqld]
explicit_defaults_for_timestamp = true
2. 免密码启动mysql
再win10中,用管理员身份打开CMD
mysqld --defaults-file="D:\Program Files\mysql-5.7.17-winx64\my-default.ini" --skip-grant-tables
3. 再打开一个CMD, 登陆mysql修改密码
#mysql
mysql> UPDATE mysql.user SET authentication_string=PASSWORD("newpassword") WHERE User='root' and Host='localhost';
4. 关闭mysql服务, 可以通过任务管理器关闭mysqld进程
将my.ini中explicit_defaults_for_timestamp恢复常规模式
[mysqld]
#explicit_defaults_for_timestamp = true
5. 用net start mysql命令,重启mysql服务
D:\Program Files\mysql-5.7.17-winx64\bin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
6. 登陆mysql,设置再次设置密码
C:\WINDOWS\system32>mysql -hlocalhost -uroot -p
Enter password: ****(刚才设置的新密码)
mysql> use mysql
mysql> SET PASSWORD = PASSWORD('newpassword');(再次输入新密码)
如果不重新设置,会提示“You must reset your password using ALTER USER statement before executing this statement.”错误。
|