mysqld_safe --skip-grant-tables 重置密码
时间: 2023-09-29 19:04:54 浏览: 179
命令mysqld_safe --skip-grant-tables可以启动MySQL服务器并跳过权限验证,这样可以允许任何人以超级管理员的身份登录MySQL服务器。在这种情况下,你可以通过以下步骤来重置MySQL密码:
1. 停止MySQL服务:sudo service mysql stop
2. 使用命令mysqld_safe --skip-grant-tables启动MySQL服务器:sudo mysqld_safe --skip-grant-tables &
3. 连接到MySQL服务器:mysql -u root
4. 使用以下命令更新root用户的密码:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
注意:将new_password替换为您要设置的新密码。
5. 刷新MySQL权限表:FLUSH PRIVILEGES;
6. 退出MySQL:exit;
7. 停止MySQL服务器:sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
8. 启动MySQL服务:sudo service mysql start
现在,您可以使用新密码以root用户身份登录MySQL服务器。
相关问题
mysql8.2.0 没有mysqld_safe 怎么修改密码
在MySQL 8.0及以上版本中,MySQL已经不再使用`mysqld_safe`脚本来启动MySQL服务器。因此,如果您需要重置或修改MySQL 8.2.0的root用户密码,您可以使用以下方法之一来操作:
1. 使用`ALTER USER`语句:
如果您已经能够登录到MySQL服务器,并且有足够权限修改用户密码,可以直接使用SQL语句来修改密码:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
```
这里的`'新密码'`应该替换为您希望设置的新密码。
2. 使用`mysqladmin`命令行工具:
您也可以使用`mysqladmin`命令行工具来重置密码。首先,您需要停止MySQL服务,然后使用`--password`选项来启动MySQL服务并设置新密码:
```bash
mysqld_safe --skip-grant-tables &
mysqladmin -u root password '新密码'
```
在执行上述操作时,您可能需要先停止MySQL服务,具体操作依赖于您的操作系统和MySQL的安装方式。
3. 通过配置文件初始化:
如果您无法使用以上方法,还可以通过移除`data`目录下的`auto.cnf`文件,并重启MySQL服务,这样MySQL会在启动时自动创建一个新的root账户,并且没有密码。然后您可以登录后设置新密码:
```bash
systemctl stop mysql
rm /var/lib/mysql/auto.cnf
systemctl start mysql
```
然后使用无密码登录MySQL,再设置新密码:
```sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
```
注意:在操作过程中,请确保您有足够的权限来执行上述命令,并且在操作前后做好相应的数据备份工作,以防不测。
no mysqld_safe in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
如果在您的系统中找不到 `mysqld_safe` 命令,可能是因为 MySQL 5.7 版本的安装方式不同或者路径配置不正确。以下是一种备选方法来重置 MySQL 5.7 版本的密码:
1. 停止 MySQL 服务
```
sudo systemctl stop mysqld
```
2. 创建一个文件,用于存储重置密码的 SQL 语句
```
sudo vi /home/reset_password.sql
```
3. 在编辑器中输入以下内容:
```sql
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root';
FLUSH PRIVILEGES;
```
请将 "new_password" 替换为您希望设置的新密码。
4. 保存并关闭文件。
5. 以跳过授权表的方式启动 MySQL 服务,并执行重置密码的 SQL 语句
```
sudo mysqld --skip-grant-tables --init-file=/home/reset_password.sql &
```
6. 等待 MySQL 启动并执行完 SQL 语句后,通过另一个终端窗口连接到 MySQL
```
mysql -u root -p
```
7. 输入刚才设置的新密码进行登录。
请注意,这些步骤是一种备选方法,并且可能因系统配置和安装方式的差异而有所不同。如果仍然遇到问题,请参考您的操作系统和 MySQL 版本的官方文档或支持资源。
阅读全文