重置MySQL 5.6中的ROOT密码

问题描述 投票:18回答:8

我一直在关注these instructions重置root密码,以便在Windows 7笔记本电脑上本地安装MySQL 5.6

我停止了服务,创建了init-file,并运行了以下命令(以管理员身份):

"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" --init-file=C:\\MySQL-misc\\mysql-init.txt

我收到以下警告:

2014-02-08 15:44:10 0 [警告]不推荐使用具有隐式DEFAULT值的TIMESTAMP。请使用--explicit_defaults_for_timestamp服务器选项(有关详细信息,请参阅文档)。

由于这是一个警告,我不确定是否需要修复任何东西,然后再次重做该过程。

目前,命令窗口仍处于打开状态,不接受任何输入。我应该强制关闭它还是我可以做任何事情来优雅地完成这个过程?

UPDATE

我杀死了命令窗口,并尝试重新启动该服务。出了错误。

重新启动Windows,服务自动启动。新的root password似乎有效。我成功地使用了需要密码的Workbench的各种功能。

所以,警告确实只是一个警告。

mysql windows-7 passwords password-recovery mysql-5.6
8个回答
54
投票

在Windows上:

0)关闭服务mysql56

1)去C:\ProgramData\MySQL\MySQL Server 5.6,注意ProgramData是一个隐藏文件夹

2)寻找文件my.ini,打开它并在skip-grant-tables下面添加一行[mysqld],保存

[mysqld]

skip-grant-tables

3)开始服务mysql56

4)通过右键,您可以访问数据库,运行mysql

5)并使用下面的查询来更新密码

update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';

注意:对于较新版本,请使用authentication_string而不是password

6)再次关闭服务,删除行skip-grant-tables保存,然后再次启动服务。尝试使用您设置的密码登录。


在Mac上:

0)停止服务

sudo /usr/local/mysql/support-files/mysql.server stop

1)跳过授权表

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

一旦它运行,不要关闭它,并打开一个新的终端窗口

2)进入mysql终端

/usr/local/mysql/bin/mysql -u root

3)更新密码

UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

对于像5.7这样的新版本,请使用

UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';

4)运行FLUSH PRIVILEGES;

5)运行\q退出

6)启动mysql服务器

sudo /usr/local/mysql/support-files/mysql.server start

5
投票
  • 进入管理工具>服务,停止Mysql服务
  • 打开开始>运行> cmd(以管理员身份运行)
  • 使用以下行手动启动服务器: mysqld -P3306 --skip-grant-tables
  • 在新cmd(以管理员身份运行)中执行: mysql -P3306 mysql
  • 在mysql客户端中执行以下查询: update mysql.user set authentication_string=password('new_password') where user='root';

而已!!


4
投票

问题已经解决。

正如我的问题所述,我跟随instructions from MySQL manual

这个过程并没有完全按照描述(这是我原来的帖子的原因),但它仍然有用(参见我的帖子中的更新部分)。


2
投票

更新this answer有关MySQL 5.7的更改:

0)关闭服务mysql57

1)去C:\ProgramData\MySQL\MySQL Server 5.7,注意ProgramData是一个隐藏文件夹

2)寻找文件my.ini,打开它并在skip-grant-tables下面添加一行[mysqld],保存

[mysqld]

skip-grant-tables

3)开始服务mysql57

4)通过右键,可以访问数据库,运行mysql

5)并使用下面的查询来更新密码

update mysql.user set authentication_string=password('NEW_PASSWORD') where user='root';

6)再次关闭服务,删除行skip-grant-tables保存,然后再次启动服务。尝试使用您设置的密码登录。


0
投票

万一你安装了Xampp。

  1. 转到C:\ xampp \ mysql \ bin
  2. 打开my.ini文件
  3. skip-grant-tables放在[mysqld]
  4. 转到Windows服务并停止mysql服务
  5. 从命令提示符C:\xampp\mysql\bin\mysql触发此命令
  6. 现在,使用MySQL查询update mysql.user set password=PASSWORD('root') where user='root';重置root密码
  7. 退出命令提示符。
  8. 重新启动在步骤4中关闭的mysql Windows服务。
  9. 现在,您将能够以root身份使用密码登录mysql。

0
投票

对于Windows上的MySQL 5.6,我必须运行此语句才能使其正常工作。

UPDATE mysql.user
SET Password=PASSWORD('NEW PASSWORD'), 
authentication_String=PASSWORD('NEW PASSWORD')
WHERE User='root';

0
投票

First stop mysql server and follow below steps:

转到cmd i上的mysql bin目录,e。 cd C:\ ProgramData \ MySQL \ MySQL Server 5.6 \ bin

skip grant tables will allow you enter into mysql

  • mysqld.exe --skip-grant-tables

Open new command prompt or on same command prompt

  • mysql.exe -uroot -p(没有任何密码你可以登录mysql)

run below query to change mysql root password

  • UPDATE mysql.user set password = password('root password')WHERE user ='root';
  • 刷新权限

Thats it, Restart mysql and good to go with new password..!!


0
投票

没有编辑mi.ini:

service mysql stop
mysqld_safe --skip-grant-tables

在单独的ssh会话上:

update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';

无需刷新权限,只需重启服务器即可

© www.soinside.com 2019 - 2024. All rights reserved.