第 65.1 节:在 Linux 中更改 MySQL root 密码
步骤 1: 停止 MySQL 服务器
- Ubuntu 或 Debian:
sudo /etc/init.d/mysql stop - CentOS、Fedora 或 Red Hat Enterprise Linux:
sudo /etc/init.d/mysqld stop
步骤 2: 以跳过权限表的方式启动 MySQL 服务器
sudo mysqld_safe --skip-grant-tables &
如果 mysqld_safe 不可用:
sudo mysqld --skip-grant-tables &
步骤 3: 连接到 MySQL 服务器
mysql -u root
步骤 4: 设置新的 root 密码
版本 > 5.7:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;
EXIT;
版本 ≤ 5.7:
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
FLUSH PRIVILEGES;
EXIT;
注意: ALTER USER 语法从 MySQL 5.7.6 开始引入。
步骤 5: 重启 MySQL 服务器
- Ubuntu 或 Debian:
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
- CentOS、Fedora 或 Red Hat Enterprise Linux:
sudo /etc/init.d/mysqld stop
sudo /etc/init.d/mysqld start
第 65.2 节:在 Windows 中更改 MySQL root 密码
步骤 1: 以任意方式启动命令提示符。
步骤 2: 切换到 MySQL 安装目录,例如:
C:\> cd C:\mysql\bin
步骤 3: 启动 mysql 命令提示符
C:\mysql\bin> mysql -u root mysql
步骤 4: 执行更改密码的查询
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('my_new_password');
第 65.3 节:通用流程
- 停止 MySQL(
mysqld)服务器/守护进程。 - 使用
--skip-grant-tables选项启动 MySQL 服务器进程,以便不提示密码:mysqld_safe --skip-grant-tables & - 以 root 用户连接到 MySQL 服务器:
mysql -u root - 更改密码:
- (5.7.6 及更高版本):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password'; - (5.7.5 及更早版本,或 MariaDB):
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new-password'); FLUSH PRIVILEGES;quit;- 重启 MySQL 服务器。
注意: 这仅在你物理上位于同一台服务器上时有效。
在线文档:http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html