我按照mysql 5.6手册的说明重置我的root密码,但它无法正常工作。我也尝试过使用' - skip-grant-tables'基于this question的选项。仍然没有工作。
我使用的是Windows 7和MySQL 5.6,它作为服务运行。这正是我所做的:
首先,我从this procedure执行了步骤1到5,停止MySQL服务,并创建我的init文件。这是我的init文件,密码被删除:
UPDATE mysql.user SET Password=PASSWORD('**********') WHERE User='root';
FLUSH PRIVILEGES;
我还检查了我的服务上的属性,它确实有MySQL5.6的正确路径
然后在一个新的终端做了这个:
C:\Users\michael>"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --init-file=C:\Users\michael\mysql-init.txt --skip-grant-tables
2014-10-13 10:18:10 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
之后,终端不再可用,我不能做ctrl + c,也不能输入任何东西。所以我打开了一个新终端并测试了使用该密码登录,它运行良好。
此时它并未作为服务运行。我能想到停止mysqld的唯一方法是使用任务管理器,因为终端中的ctrl + c不起作用,关闭终端并没有停止mysqld。在我从任务管理器停止后,我回到服务窗口并启动mysql作为服务。
不幸但是,我尝试使用之前工作过的相同密码再次登录,但我仍被拒绝访问:
C:\Users\michael>mysql -uroot -p
Enter password: **********
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
我错过了什么?