本人机器环境:
Windows 2008 R2
MySQL 5.6
以“Window下忘记Mysql的root密码”百度,找到一大堆解决方案。大多大同小异,比较经典的是百度文库上的一篇【1】,图文并茂,条理也比较清晰。立刻按照这篇文章描述的操作。
具体操作如下:
以下步骤如果添加了MySQL的环境变量,则可以直接运行mysql有关命令,否则必须到mysql安装目录的bin目录下操作。
步骤如下:
1.停止mysql服务(以管理员身份,在cmd命令行下运行) net stop mysql
2.使用 mysqld –skip-grant-tables 命令启动mysql数据库
D:/>net stop mysql MySQL 服务正在停止. MySQL 服务已成功停止。
D:/>mysqld --skip-grant-tables
3.不关闭以上窗口,新开一个cmd窗口,输入mysql -u root,直接按回车键
D:/>mysql -u root
Welcome to the MySQL monitor. Commands end with ; or /g. Your MySQL connection id is 1 Server version: 5.1.26-rc-community MySQL Community Server (GPL) Type 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql> update mysql.user set password=password('aaa') where user='root';
密码可以自己随便写。
Query OK, 1 row affected (0.02 sec) Rows matched: 2 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) mysql>
4.打开任务管理器,停止mysql,mysqld进程,使用net start mysql启动mysqld服务,就可以使用root用户 root密码进入数据库了
mysql -u root -p aaa
补充说明:
1.mysqld使用说明可以使用如下命令获取查看:
mysqld --verbose --help > d:/mysqld_help.txt
帮助中–skip-grant-tables的帮助为:
--skip-grant-tables Start without grant tables. This gives all users FULL ACCESS to all tables!
所以我们可以使用mysql -uroot而不用密码直接登陆mysql,而且可以修改任何表。
本人实践,用mysqld --skip-grant-tables启动mysql,mysql -u root -p空密码可以登录,修改密码也会提示成功,但是正常启动mysql时,用新的密码依旧无法登录。本人想到既然在中文网站无法找到答案,尝试上国外的网站寻求答案。于是以mysql 5.6 forget root password为关键字搜索,在mysql.com上的一篇文档”B.5.3.2 How to Reset the Root Password“【2】找到了答案。
具体操作步骤如下:
(1)停止mysql
如果以服务的方式运行,在服务管理工具停止mysql服务。或者在控制台运行如下命令。
net stop mysql56
如果没有以服务方式运行,在任务管理器里终止mysqld进程。
(2)创建一个文本文件写入如下内容。MyNewPass是新的密码
新闻热点
疑难解答