用某破解版程序,运行一段时间数据库就被清空(哎,遭报应了),密码被修改无法登陆。
之前也没遇到过这个问题,第一次遇到问题以为是服务器出错数据密码错误了。之后重新安装mysql,保留数据内容之后发现数据库中的表不见了。
嗯,可能是服务器数据丢失了。那就重新安装一次程序吧。
之后又用了两个天又不能用了,出现了和第一次的状况一样。可能意识到情况比较严重。查看mysql日志最后发现有drop数据库的操作。
额,密码错误,数据库被删应该就是遭到盗取了。
不能每次都重新安装数据库吧。遂想修改密码,还原数据。
网上的方法都是mysql5.7的方法,不适用于8.0。不过最终还是找到了可用的方法,现在纪录下来。以备不时。
首先mysql8.0的安装路径和数据路径是分开的。
运行无密码模式:
停掉mysql数据库服务。到mysql安装目录下bin 运行mysqld.exe 开启无密码模式的mysql服务
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld.exe --defaults-file="C:\Progr
amData\MySQL\MySQL Server 8.0\my.ini" --skip-grant-tables --shared-memory
需要加载默认的ini文件 后面的 --skip-grant-tables --shared-memory 的作用和5.7的--skip-grant-tables 相同。
继续到mysql安装目录下bin 运行
C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p
可能会提示输入密码,直接回车即可。进入mysql 命令行管理程序。就可以修改密码了。
我这里使用nactive把密码修改成空的。不知道是不是我操作的问题网上的5.7的重置密码方法无效。只把密码设置为空。到任务管理器关闭mysql程序。启动mysql服务用nactive再次修改密码。
有了两次的教训。这次单独为数据库建立一个登陆账号,去掉表的删除权限,防止在被删除吧。看看还会不会修改表结构。不行再把修改表去掉