现象
root密码忘记,根据网上教程,关闭mysqld服务,用mysqld --skip-grant-tables开启服务。
删除root后,新建root,设置密码,然后关闭mysqld服务,开启已注册的mysql服务,发现无法密码错无法登录。
原因
直接 mysqld --skip-grant-tables时,指向安装目录D:\Program Files\MySQL\MySQL Server 5.6下的默认配置文件,配置文件中指向的数据库文件地址为D:\Program Files\MySQL\MySQL Server 5.6\data
而作为服务的mysqld参数为"D:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="D:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56
数据库文件位于datadir=D:/ProgramData/MySQL/MySQL Server 5.6/Data
因此,修改前者的root,不影响后者,所以导致修改root密码失败。。
解决方法
my.ini中[mysqld]区中增加mysqld --skip-grant-tables即可。