在 MySQL 中,密码的初始化、修改和重置可以通过以下方法进行:
一、密码初始化(适用于首次安装或忘记 root 密码的情况)
- 停止 MySQL 服务
- 在不同的操作系统中,停止 MySQL 服务的方法有所不同。
- 例如,在 Linux 系统中,可以使用以下命令停止 MySQL 服务:
sudo service mysql stop
。
- 以特殊模式启动 MySQL
- 以不加载权限表的方式启动 MySQL,这样可以无需密码登录并进行密码初始化操作。
- 在命令行中执行以下命令启动 MySQL:
mysqld_safe --skip-grant-tables &
。
- 登录 MySQL 并修改密码
- 打开另一个终端窗口,使用以下命令登录 MySQL:
mysql -u root
。 - 执行以下 SQL 语句修改密码:
-- 修改密码为新密码 UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root'; -- 刷新权限 FLUSH PRIVILEGES;
- 停止特殊模式的 MySQL 并正常启动
- 回到启动 MySQL 的终端窗口,按下 Ctrl + C 停止特殊模式的 MySQL。
- 然后使用正常方式启动 MySQL 服务。
二、密码修改
- 使用 SQL 语句修改密码
- 以拥有足够权限的用户登录 MySQL,例如 root 用户。
- 执行以下 SQL 语句修改密码:
ALTER USER 'user_name'@'host_name' IDENTIFIED BY 'new_password';
- 其中,
user_name
是要修改密码的用户名称,host_name
是该用户的主机名,new_password
是新密码。
- 使用 MySQL 客户端工具修改密码
- 许多 MySQL 客户端工具,如 MySQL Workbench,提供了图形界面的方式来修改用户密码。
- 在工具中找到用户管理或类似的功能模块,选择要修改密码的用户并设置新密码。
三、密码重置(当忘记密码且无法使用上述初始化方法时)
- 停止 MySQL 服务
- 同密码初始化中的第一步。
- 修改配置文件
- 在 MySQL 的配置文件(通常是
my.cnf
或my.ini
)中添加以下内容,以允许在无密码的情况下启动 MySQL:
[mysqld] skip-grant-tables
- 启动 MySQL 服务
- 使用修改后的配置文件启动 MySQL 服务。
- 登录 MySQL 并修改密码
- 同密码初始化中的第三步。
- 恢复配置文件并重启 MySQL
- 去除配置文件中添加的内容,恢复到正常状态。
- 重启 MySQL 服务,使修改后的密码生效。