请选择 进入手机版 | 继续访问电脑版

Discuz! Board

 找回密码
 立即注册

扫一扫,访问微社区

查看: 299|回复: 53

重置MySQL的ROOT密码

[复制链接]

65

主题

77

帖子

380

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
380
发表于 2016-11-22 11:50:04 | 显示全部楼层 |阅读模式

如果您从未为MySQL分配ROOT密码,则服务器根本不需要密码即可连接。 然而,这是不安全的。强烈建议在安装时分配ROOT密码。

如果您知道ROOT密码想去修改ROOT密码是非常简单的。请参考下面的步骤,注意区分不同的版本

  1. //1、登录mysql回车后输入root密码
  2. shell> mysql -u root -p
  3. //2、从MySQL 5.7.6开始,使用ALTER USER
  4. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
  5. //3、在MySQL 5.7.6之前,使用SET PASSWORD
  6. mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
复制代码

如果先前分配了ROOT密码但忘记了,则需要重置,重置ROOT密码有些复杂,请参考下面的最佳实践。 以下部分提供了有关Windows,Unix和类Unix系统的说明,以及适用于任何系统的通用指令。帮助您进行ROOT密码的重置。


Windows平台

在Windows上,使用以下过程重置MySQL'root'@'localhost'帐户的密码。 要更改具有不同主机名部分的root帐户的密码,请修改说明以使用该主机名。默认情况下root只有一个主机名localhost即:'root'@'localhost'。这里说明一点MySQL的账户信息和主机访问权限是关联在一起的。


1. 以管理员身份登录到您的系统。


2. 如果MySQL服务器正在运行,请停止它。 对于作为Windows服务运行的服务器,请转到服务管理器:从开始菜单中,选择控制面板,然后选择管理工具,然后选择服务。 在列表中查找MySQL服务并停止它。如果您的服务器未作为服务运行,您可能需要使用任务管理器强制停止。


3. 创建包含密码分配语句的一行文本文件。 使用新的密码替换旧的密码。注意版本的区分。

  1. //MySQL 5.7.6及更高版本:
  2. ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
  3. //MySQL 5.7.5及更早版本:
  4. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
复制代码


4. 保存文件。 此示例假定您将文件命名为C:\mysql-init.txt。


5. 打开控制台窗口以访问命令提示符:从开始菜单中选择运行,然后输入cmd作为要运行的命令。注意以管理员权限打开cmd窗口。


6. 使用特殊的--init-file选项启动MySQL服务器(注意使用双反斜杠):

  1. C:\> cd "C:\Program Files\MySQL\MySQL Server 5.7\bin"
  2. C:\> mysqld --init-file=C:\\mysql-init.txt
复制代码

如果将MySQL安装到不同的位置,请相应地调整cd命令。

服务器在启动时执行由--init-file选项命名的文件的内容,更改“root”@“localhost”帐户密码。

要使服务器输出显示在控制台窗口而不是日志文件中,请将--console选项添加到mysqld命令。

如果您使用MySQL安装向导安装MySQL,您可能需要指定一个--defaults-file选项。 例如:

  1. C:\> mysqld
  2.          --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 5.7\\my.ini"
  3.          --init-file=C:\\mysql-init.txt
复制代码

可以使用服务管理器找到相应的--defaults-file设置:从开始菜单中选择控制面板,然后选择管理工具,然后选择服务。 在列表中找到MySQL服务,右键单击它,然后选择属性选项。 可执行字段的路径包含--defaults-file设置。


7. 服务器成功启动后,删除C:\mysql-init.txt。

您现在应该能够使用新密码以root身份连接到MySQL服务器。 停止MySQL服务器并正常重新启动。 如果将服务器作为服务运行,请从Windows服务窗口启动它。 如果您手动启动服务器,请使用您通常使用的任何命令。

如果ALTER USER语句无法重置密码,请尝试使用以下语句重复此过程,以直接修改用户表:

  1. UPDATE mysql.user
  2.     SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
  3.     WHERE User = 'root' AND Host = 'localhost';
  4. FLUSH PRIVILEGES;
复制代码

Unix和类Unix系统

在Unix上,使用以下过程重置MySQL'root'@'localhost'帐户的密码。 要更改具有不同主机名部分的root帐户的密码,请修改说明以使用该主机名。默认情况下root只有一个主机名localhost即:'root'@'localhost'。这里说明一点MySQL的账户信息和主机访问权限是关联在一起的。

说明,假设您将从通常用于运行它的Unix登录帐户启动MySQL服务器。 例如,如果您使用mysql登录帐户运行服务器,则应在使用说明之前以mysql身份登录。 或者,您可以以root身份登录,但在这种情况下,您必须使用--user = mysql选项启动mysqld。 如果以root用户身份启动服务器而不使用--user = mysql,服务器可能会在数据目录中创建根用户文件,例如日志文件,这些可能会导致与未来服务器启动相关的权限相关问题。 如果发生这种情况,您需要将文件的所有权更改为mysql或删除它们。


1. 以MySQL服务器运行的Unix用户身份登录到您的系统(例如,mysql)。


2. 如果MySQL服务器正在运行,请停止它。 找到包含服务器进程ID的.pid文件。 此文件的确切位置和名称取决于您的安装,主机名和配置。 常见的位置是/var/lib/mysql/,/var/run/mysqld/和/usr/local/mysql/data/。 通常,文件名的扩展名为.pid,以mysqld或系统的主机名开头。

通过向mysqld进程发送正常kill(非kill -9)来停止MySQL服务器(kill -9属于强制停止进程,可能导致MySQL异常)。 在以下命令中使用.pid文件的实际路径名:

  1. shell> kill `cat /mysql-data-directory/host_name.pid`
复制代码
使用cat命令使用反引号(不是正向引号)。 这样的话cat的输出被替换为kill命令的执行内容。

我们可以使用ps命令来找到mysql的进程id,然后kill即可,如下命令所示mysql的进程id为178,还可以看到--pid-file参数对应的pid文件路径

  1. //显示所有包含mysql关键字的进程信息
  2. bash-4.1# ps -ef | grep mysql
  3. root        67     1  0 Oct28 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.36du.com.pid
  4. mysql      178    67  0 Oct28 ?        00:10:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/mysql.36du.com.err --pid-file=/usr/local/mysql/data/mysql.36du.com.pid
  5. root       440   428  0 10:14 ?        00:00:00 grep mysql
复制代码

3. 创建包含密码分配语句的一行文本文件。 使用新的密码替换旧的密码。注意版本的区分。
  1. //MySQL 5.7.6及更高版本:
  2. ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
  3. //MySQL 5.7.5及更早版本:
  4. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
复制代码

4. 保存文件。 此示例假定您将文件命名为/home/me/mysql-init。 文件包含密码,因此请勿将其保存到其他用户可以读取的位置。 如果你没有以mysql(服务器运行的用户)身份登录,请确保该文件具有允许mysql读取它的权限。


5. 使用特殊的--init-file选项启动MySQL服务器:

  1. shell> mysqld_safe --init-file=/home/me/mysql-init &
复制代码
服务器在启动时执行由--init-file选项命名的文件的内容,更改“root”@“localhost”帐户密码。

6. 服务器成功启动后,删除/home/me/mysql-init。

您现在应该能够使用新密码以root身份连接到MySQL服务器。 停止服务器并正常重新启动。

如果ALTER USER语句无法重置密码,请尝试使用以下语句重复此过程,以直接修改用户表:

  1. UPDATE mysql.user
  2.     SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
  3.     WHERE User = 'root' AND Host = 'localhost';
  4. FLUSH PRIVILEGES;
复制代码

通用指令(适用于任何系统)


前面的部分提供专门用于Windows、Unix和类Unix系统的密码重置指令。 或者,在任何平台上,您可以使用mysql客户端重置密码(但这种方法不太安全):


1. 如果需要,停止MySQL服务器,然后使用--skip-grant-tables选项重新启动它。 这使任何人都可以在没有密码和所有权限的情况下连接,并禁用帐户管理语句,例如ALTER USER和SET PASSWORD。 由于这是不安全的,因此您可能需要将--skip-grant-tables与--skip-networking结合使用,以防止远程客户端连接。


2. 使用mysql客户端连接到MySQL服务器; 没有密码是必需的,因为服务器是用--skip-grant-tables启动的:

  1. shell> mysql
复制代码

3. 在mysql客户端中,告诉服务器重新加载授予表,以便帐户管理语句工作:
  1. mysql> FLUSH PRIVILEGES;
复制代码

然后更改“root”@“localhost”帐户密码。 使用要使用的密码替换密码。 要更改具有不同主机名部分的root帐户的密码,请修改说明以使用该主机名。

MySQL 5.7.6及更高版本:

  1. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
复制代码
MySQL 5.7.5及更早版本:
  1. mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
复制代码

您现在应该能够使用新密码以root身份连接到MySQL服务器。 停止服务器并正常重新启动(不使用--skip-grant-tables和-skip-networking选项)。

如果ALTER USER语句无法重置密码,请尝试使用以下语句重复此过程,以直接修改用户表:

  1. UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass')
  2. WHERE User = 'root' AND Host = 'localhost';
  3. FLUSH PRIVILEGES;
复制代码
更多精彩内容请关注我们的微信公众号




0

主题

5

帖子

160

积分

注册会员

Rank: 2

积分
160
发表于 2016-11-22 11:52:20 来自手机 | 显示全部楼层
非常不错
来自: 微社区

65

主题

77

帖子

380

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
380
 楼主| 发表于 2016-11-22 11:53:10 | 显示全部楼层

0

主题

5

帖子

160

积分

注册会员

Rank: 2

积分
160
发表于 2016-11-22 14:29:41 来自手机 | 显示全部楼层

0

主题

59

帖子

169

积分

注册会员

Rank: 2

积分
169
发表于 2017-8-30 22:36:25 | 显示全部楼层
位成功人算命的背后一定有位懂命理的大师相助跟我老婆结婚5年来一直都是非常的相爱的,但是唯一让我们忧心的是一直没有一个孩子,也吃了很多的偏方,但是一直没有什么效果,后来我觉得要去医院检查一下,看看算命聊天的时候说起这个事,他说可以去找算命的看看,他就介绍一个鱼非子大师给我,我跟老婆就想着死马当活马医,是试试看,一到那里,给我俩算了一下生辰八字是就问我说,是不是结婚前怀孕了,没有要,把孩子打了,而且近几年的财运,运气什么的都不是很好,当时seo就蒙了,这都算出来了,大师说现在次次不怀孕就是这个那次的打胎导致的,同时也影响了我们的财运什么的,后来他就告诉我们化解的方法

0

主题

60

帖子

169

积分

注册会员

Rank: 2

积分
169
发表于 2017-9-2 04:36:59 | 显示全部楼层
55位成功人石家庄信用卡代还的背后一定有位懂命理的大师相助跟我老婆结婚5年来一直都是非常的相爱的,但是唯一让我们忧心的是一直石家庄贷款没有一个孩子,也吃了很多的偏方,但是一直没有什么效果,后来我觉得要去医院检查一下,看看人石家庄信用卡代还的聊天的时候说起这个事,他说可以去找算命的看看,他就介绍一个鱼非子大师给我,我跟老婆就想着死马当活马医,是试试看,一到哪里算命准那里,给我俩算了一下生辰八字是就问我说,是不是结婚前怀孕了,没有要,把孩子打了,而且近几年的财运,运气什么的都不是很好,石家庄信用卡代还我就蒙了,这都算出来了,大师说现石家庄信用卡代还在次次不怀孕就是这个那次的打胎导致的,同时也影响了我们的财运什么的,后来他就告诉我们化解的方法

0

主题

68

帖子

185

积分

注册会员

Rank: 2

积分
185
发表于 2017-9-2 07:04:23 | 显示全部楼层
1位成功人哪里算命准的背后一定有位懂命理的大师相助跟我老婆结婚5年来一直都是非常的相爱的,但是唯一让我们忧心的是一直没有一个孩子,也吃了很多的偏方,但是一直没有什么效果,后来我觉得要去医院检查一下,看看哪里算命准聊天的时候说起这个事,他说可以去找算命的看看,他就介绍一个鱼非子大师给我,我跟老婆就想着死马当活马医,是试试看,一到那里,给我俩算了一下生辰八字是就问我说,是不是结婚前怀孕了,没有要,把孩子打了,而且近几年的财运,运气什seo培训么的都不是很好,当时我就蒙了,这都算出来了,大师说现在次次不怀孕就是这个那次的打胎导致的,同时也影响了我们的财运什么的,后来他就告诉我们化解的方法

0

主题

77

帖子

205

积分

中级会员

Rank: 3Rank: 3

积分
205
发表于 2017-9-7 22:54:31 | 显示全部楼层
2位成功人算命的背后一定有位懂命理的大师相助跟我老婆结婚5年来一直都是非常的相爱的,但是唯一让我们忧心的是一直没有一个孩子,也吃了很多的偏方,但是一直没有什么效果,后来我觉得要去医院检查一下,看看算命聊天的时候说起这个事,他说可以去找算命的看看,他就介绍一个鱼非子大师给我,我跟老婆就想着死马当活马医,是试试看,一到那里,给我俩算了信用卡取现一下生辰八字是就问我说,是不是结婚前怀孕了,没有要,把孩子打了,而且近几年的财运,运气什么的都不是很好,当时seo就蒙了,这都算出来了,大师说现在次次不怀孕就是这个那次的打胎导致的,同时也影响了我们的财运什么的,后来他就告诉我们化解的方法

0

主题

68

帖子

185

积分

注册会员

Rank: 2

积分
185
发表于 2017-9-7 23:18:12 | 显示全部楼层
111位成功人算命的背后一定有位懂命理的大师相助跟我老婆结婚5年来一直都是非常的相爱的,但是唯一让我们忧心的是一直没有一个孩子,也吃了很多的偏方,但是一直没有什么效果,后来我觉得要去医院检查一下,看看算命聊天的时候说起这个事,他说可以去找算命的看看,他就介绍一个鱼非子大师给我,我跟老婆就想着死马当活马医,是试试看,一到那里,给我俩石家庄信用卡套现算了一下生辰八字是就问我说,是不是结婚前怀孕了,没有要,把孩子打了,而且近几年的财运,运气什么的都不是很好,当时seo我就蒙了,这都算出来了,大师说现在次次不怀孕就是这个那次的打胎导致的,同时也影响了我们的财运什么的,后来他就告诉我们化解的方法

0

主题

63

帖子

179

积分

注册会员

Rank: 2

积分
179
发表于 2017-9-14 01:21:28 | 显示全部楼层
55位成功人石家庄信用卡代还的背后一定有位懂命理的大师相助跟我老婆结婚5年来一直都是非常的相爱的,但是唯一让我们忧心的是一直石家庄贷款没有一个孩子,也吃了很多的偏方,但是一直没有什么效果,后来我觉得要去医院检查一下,看看人石家庄信用卡代还的聊天的时候说起这个事,他说可以去找算命的看看,他就介绍一个鱼非子大师给我,我跟老婆就想着死马当活马医,是试试看,一到哪里算命准那里,给我俩算了一下生辰八字是就问我说,是不是结婚前怀孕了,没有要,把孩子打了,而且近几年的财运,运气什么的都不是很好,石家庄信用卡代还我就蒙了,这都算出来了,大师说现石家庄信用卡代还在次次不怀孕就是这个那次的打胎导致的,同时也影响了我们的财运什么的,后来他就告诉我们化解的方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|36deg Inc. ( 京ICP备15033721号-2 )

GMT+8, 2018-1-20 06:57 , Processed in 0.130225 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表