背景
我之前用5.7,昨天下载了mysql8.2 成功安装,并且将root的密码修改为root,然后可以连接到java和navicat。今天我尝试连接数据库的时候,我发现root密码不管用了,反倒是我之前使用mysql5.7的密码可以使用,但我再也登不上java和navicat了。当我尝试修改root的密码的时候ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';,提示这样的信息。ERROR 1726 (HY000): Storage engine 'MyISAM' does not support system tables. [mysql.user]
前提
需要你能在dos界面能登录的上mysql。可以参考以下博客MySQL8.2.0修改初始密码(压缩包安装版)_windows mysql 8.2修改密码-CSDN博客
做法
网上信息很少,我干脆直接重新初始化数据库。最后成功了。我虽然备份了数据库,但是我发现我的data表没有删除。就没有重新备份了。
- 在dos界面(非mysql登录界面)备份数据库。mysqldump -u 用户名 -p --all-databases > 路径
- 停止服务 net stop mysql; (我的是mysql80)
- 删除mysql 服务 mysqld remove;
- 初始化mysql mysqld --initialize;
- 注册mysql 服务 mysqld install;
- 启动mysql 服务 net start mysql;(我的是mysql80)
- 登录mysql
- 修改新密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'sa123';