重置MySQL 5.6中的ROOT密码

时间:2014-02-08 21:13:42

标签: mysql windows-7 passwords password-recovery mysql-5.6

我一直关注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 [警告] TIMESTAMP具有隐式DEFAULT值   已弃用。请使用--explicit_defaults_for_timestamp服务器   选项(有关详细信息,请参阅文档)。

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

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

更新

我杀了命令窗口并尝试重启服务。出了错误。

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

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

9 个答案:

答案 0 :(得分: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

答案 1 :(得分: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';
    

就是这样!!

答案 2 :(得分:4)

此问题已已解决

如我的问题所述,我遵循了instructions from MySQL manual

这个过程并没有像所描述的那样完全(这就是我原来的帖子的原因)但是它仍然有效(请参阅我的帖子中的更新部分)。 / p>

答案 3 :(得分:2)

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

0)关闭服务Exception Note

1)转到mysql57,请注意C:\ProgramData\MySQL\MySQL Server 5.7是隐藏文件夹

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

[mysqld]

3)启动服务[mysqld] skip-grant-tables

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

5)并使用以下查询更新密码

mysql57

6)再次关闭服务,删除行update mysql.user set authentication_string=password('NEW_PASSWORD') where user='root';保存,然后再次启动服务。尝试使用您设置的密码登录。

答案 4 :(得分: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. 触发此命令
  7. 现在,使用MySQL查询update mysql.user set password=PASSWORD('root') where user='root';
  8. 重置root密码
  9. 退出命令提示符。
  10. 重新启动在步骤4中关闭的mysql Windows服务。
  11. 现在您将能够以root身份使用密码登录mysql。

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

首先停止mysql服务器,然后执行以下步骤:

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

跳过授予表将允许您输入mysql

  • mysqld.exe --skip-grant-tables

打开新命令提示符或在同一命令提示符下

  • mysql.exe -uroot -p(无需密码即可登录mysql)

在查询下面运行以更改mysql根密码

  • 更新mysql.user设置password = password('root密码')WHERE user ='root';
  • 刷新权限

就这样,重新启动mysql并使用新密码进行操作很不错.. !!

答案 7 :(得分:0)

不编辑mi.ini:

service mysql stop
mysqld_safe --skip-grant-tables

在单独的ssh会话上:

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

无需刷新特权,只需重新启动服务器

答案 8 :(得分:0)

如果遇到此错误:尝试重设root密码时,mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.。您可以尝试:

sudo service mysql stop
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables & 
mysql -uroot
update mysql.user set authentication_string=password('your_password') where user='root';
flush privileges;
quit
sudo killall mysql
sudo service mysql start
mysql -u root -pyour_password
  

在Ubuntu 18.04中运行的MySQL 5.7中进行了测试