如何重置根密码
一个文本文件
d:\mysql\mysql-init.txt
;内容为:ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin2';一句启动命令mysqld --defaults-file=d:/mysql/my.ini --init-file=d:/mysql/mysql-init.txt --console
如果您从未root
为MySQL分配密码,则服务器根本不需要密码来连接as root
。但是,这是不安全的。有关分配密码的说明
如果您知道root
密码并想要更改,请参见“ ALTER USER语句”和 “ SET PASSWORD语句”。或者
如果您之前分配了root
密码但忘记了密码,则可以分配一个新密码。以下各节提供了适用于Windows和Unix及类Unix系统的说明,以及适用于任何系统的通用说明。
B.3.3.2.1重置根密码:Windows系统
在Windows上,使用以下过程重置MySQL'root'@'localhost'
帐户的密码。要更改root
具有不同主机名部分的帐户的密码 ,请修改说明以使用该主机名。
- 以管理员身份登录到系统。
- 如果MySQL服务器正在运行,请停止它。对于作为Windows服务运行的服务器,请转到服务管理器:从开始菜单中,选择控制面板,然后 选择 管理工具,然后选择 服务。在列表中找到MySQL服务并停止它。
如果服务器未作为服务运行,则可能需要使用任务管理器强制其停止。 在d:\mysql\
创建一个文本文件mysql-init.txt
(也可以起别的什么名字)
,其中包含一行的密码分配语句。用您要使用的密码admin2替换密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin2';
- 保存文件。本示例假定您的文件命名为
d:\mysql\mysql-init.txt
。 - 打开控制台窗口以转到命令提示符:从“开始”菜单中,选择 “运行”,然后输入 cmd作为要运行的命令。
- 在将init_file系统变量设置为文件名的情况下启动MySQL服务器 (注意,选项值中的反斜杠已加倍):
C:\> cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
C:\> mysqld --init-file=C:\\mysql-init.txt
如果将MySQL安装到其他位置,请相应地调整cd命令。
服务器init_file在启动时执行系统变量命名的文件的内容,更改 'root'@'localhost'
帐户密码。
要使服务器输出显示在控制台窗口中而不是日志文件中,请将该--console选项添加 到 mysqld命令中。
如果使用MySQL安装向导安装了MySQL,则可能需要指定一个 --defaults-file选项。例如:
C:\> mysqld
--defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 8.0\\my.ini"
--init-file=C:\\mysql-init.txt
本文用mysqld
--defaults-file='d:\\mysql\\my.ini' --init-file=d:\\mysql\\mysql-init.txt
mysqld --defaults-file='d:/mysql/my.ini' --init-file=d:/mysql/mysql-init.txt
mysqld --defaults-file='d:\mysql\my.ini' 带引号不行.
mysqld --defaults-file=d:\mysql\my.ini --console 反斜杠可以运行
mysqld --defaults-file=d:/mysql/my.ini --console 斜杠也可以运行
mysqld --defaults-file=d:/mysql/my.ini --console --init-file=d:/mysql/mysql-init.txt 可以运行
执行启动mysqld服务命令:
mysqld --defaults-file=d:/mysql/my.ini --init-file=d:/mysql/mysql-init.txt --console
--defaults-file可以使用服务管理器找到 适当的 设置:从 开始菜单中,选择控制面板,然后 选择 管理工具,然后选择 服务。在列表中找到MySQL服务,右键单击它,然后选择 Properties
选项。该Path to executable
字段包含 --defaults-file设置。
- 服务器成功启动后,删除
C:\mysql-init.txt
。
现在,您应该能够root
使用新密码连接到MySQL服务器 。停止MySQL服务器并正常重启。如果将服务器作为服务运行,请从Windows服务窗口启动它。如果手动启动服务器,请使用通常使用的任何命令。
关于mysql-init.txt内容:
#mysql8.0后用这两句,把#去掉.把底下的类似两句前加#如果都不识别,Unknown system variable 'validate_password,说明没有安装加密插件,则都加上#只留一句改密码
#set global validate_password.policy=0;
#set global validate_password.length=4;
#set global validate_password_policy=0;
#set global validate_password_length=4;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin2';