21

我一直在按照这些说明重置Windows 7 笔记本电脑上本地安装的root密码。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 服务器选项(有关详细信息,请参阅文档)。

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

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

更新

我杀死了命令窗口并试图重新启动服务。出错了。

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

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

4

9 回答 9

63

在 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-tablessave那行,重新启动服务。尝试使用您设置的密码登录。


在 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
于 2015-09-03T09:49:16.180 回答
6
  • 通过进入管理工具>服务停止Mysql服务
  • 打开开始>运行> cmd(以管理员身份运行
  • 使用此行手动启动服务器:

    mysqld -P3306 --skip-grant-tables
    
  • 在新的 cmd(以管理员身份运行)中执行:

    mysql -P3306 mysql
    
  • 在 mysql 客户端执行以下查询:

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

就是这样!!

于 2016-05-03T19:12:55.270 回答
4

问题已解决

如我的问题所述,我遵循 MySQL 手册中的说明。

该过程并未完全按照描述进行(这就是我最初发布帖子的原因),但它仍然有效(请参阅我帖子中的更新部分)。

于 2014-03-12T18:47:39.183 回答
2

更新有关 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-tablessave那行,重新启动服务。尝试使用您设置的密码登录。

于 2016-04-25T10:36:59.900 回答
1

首先停止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 root 密码

  • UPDATE mysql.user set password=password('root password') WHERE user='root';
  • flush privileges

就是这样,重新启动mysql并使用新密码很好..!!

于 2018-07-05T09:24:24.187 回答
1

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

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 中测试

于 2019-11-15T15:20:26.007 回答
0

如果您安装了 Xampp。

  1. 转到 C:\xampp\mysql\bin
  2. 打开我的.ini 文件
  3. 放在skip-grant-tables下面[mysqld]
  4. 转到 windows 服务并停止 mysql 服务
  5. 从命令提示符触发此命令C:\xampp\mysql\bin\mysql
  6. 现在,使用 MySQL 查询重置 root 密码update mysql.user set password=PASSWORD('root') where user='root';
  7. 退出命令提示符。
  8. 重启第4步中关闭的mysql windows服务。
  9. 现在您将能够使用密码作为 root 登录到 mysql。
于 2015-10-16T07:25:18.800 回答
0

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

UPDATE mysql.user
SET Password=PASSWORD('NEW PASSWORD'), 
authentication_String=PASSWORD('NEW PASSWORD')
WHERE User='root';
于 2017-08-23T19:37:53.600 回答
0

不编辑 mi.ini:

service mysql stop
mysqld_safe --skip-grant-tables

在单独的 ssh 会话上:

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

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

于 2019-04-19T20:51:11.460 回答