ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
时间: 2023-09-13 11:05:13 浏览: 122
这个错误是因为 MySQL 服务器当前处于跳过权限验证模式,无法执行修改用户密码这样需要权限验证的操作。
你需要先退出跳过权限验证模式,然后再执行修改密码的操作。可以按照以下步骤操作:
1. 以管理员身份重启 MySQL 服务器,不要使用 `--skip-grant-tables` 参数。
2. 登录 MySQL 服务器,使用 `mysql -u root -p` 命令以 root 用户身份登录。
3. 执行以下 SQL 语句来更新 root 用户的密码:
```
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'your_new_password';
```
其中,`your_new_password` 是你想要设置的新密码,需要替换为实际的密码。
执行完毕后,你可以再次启用跳过权限验证模式,但为了安全起见,不建议长期开启跳过权限验证模式。
相关问题
error 1290 (hy000): the mysql server is running with the --skip-grant-tables option so it cannot execute this statement
这个错误消息表明 MySQL 服务器正在使用 "--skip-grant-tables" 选项运行,因此无法执行此语句。在这种模式下,MySQL 不会检查用户账号和权限,所有用户都可以访问数据库,这可能会导致数据安全问题,建议您确认是否正确使用该选项并在正式环境下禁用该选项。
修改mysql密碼報錯ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
当MySQL服务器运行时使用了`--skip-grant-tables`选项,它将不会执行任何需要权限的语句,包括修改密码。因此,如果你想修改MySQL密码,你需要先停止MySQL服务,然后以跳过权限检查的方式启动MySQL服务,并在完成密码修改后再以正常方式启动MySQL服务。
以下是修改MySQL密码的步骤:
1. 停止MySQL服务
```shell
sudo systemctl stop mysql
```
2. 以跳过权限检查的方式启动MySQL服务
```shell
sudo mysqld_safe --skip-grant-tables &
```
3. 连接到MySQL服务器
```shell
mysql -u root
```
4. 切换到mysql数据库
```shell
use mysql;
```
5. 修改密码
```shell
update user set authentication_string=password('new_password') where user='root';
```
6. 刷新权限
```shell
flush privileges;
```
7. 退出MySQL
```shell
exit;
```
8. 停止MySQL服务
```shell
sudo systemctl stop mysql
```
9. 以正常方式启动MySQL服务
```shell
sudo systemctl start mysql
```
阅读全文