You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fedora 33下执行mysql_secure_installation报1045访问被拒问题求解

Fedora 33 部署MySQL时临时密码访问被拒的解决方法

问题场景

Fedora 33系统部署MySQL过程中,从sudo grep 'temporary password' /var/log/mysqld.log日志查询提取的官方临时密码,用于执行sudo mysql_secure_installation安全配置脚本、或直接用sudo mysql -u root -p登录时,均触发ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)报错,可通过以下步骤完成修复。

修复操作步骤

1. 停止所有MySQL运行进程

先终止系统服务托管的MySQL实例:
sudo systemctl stop mysqld
检查是否存在残留后台进程:
pgrep mysqld
如果查询返回有效进程ID,强制清理残留进程:
sudo kill -9 <查询到的进程ID>

2. 以跳过权限校验的模式启动MySQL

执行后台启动命令,跳过权限表加载流程,同时关闭网络访问权限,降低操作过程的安全风险:
sudo mysqld --skip-grant-tables --skip-networking &
提示:命令末尾的&参数代表将进程放置在后台运行,操作全程不要关闭当前终端窗口,避免进程意外中断

3. 无密码登录并重置root权限

直接执行命令进入MySQL控制台,无需输入密码:
mysql -u root
进入控制台后按顺序执行以下SQL语句完成权限重置:

  • 先刷新权限表,否则后续修改操作会触发权限报错:
    FLUSH PRIVILEGES;
  • 切换到MySQL内置的系统权限库:
    USE mysql;
  • 重置root本地登录密码。需注意Fedora 33默认搭载的MySQL 8.x版本的密码强度要求(需包含大小写字母、数字、特殊字符,长度不小于8位),可根据自身需求替换为自定义密码:
    ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '自定义的高强度密码';
  • 再次刷新权限使配置生效:
    FLUSH PRIVILEGES;
  • 退出MySQL控制台:
    exit;

4. 恢复MySQL正常运行模式

  • 终止之前后台运行的跳过权限模式的MySQL进程:
    sudo pkill -9 mysqld
  • 通过系统服务正常启动MySQL:
    sudo systemctl start mysqld

5. 验证功能可用性

  • 使用刚才设置的新密码,执行sudo mysql -u root -p确认可正常登录控制台
  • 重新执行sudo mysql_secure_installation,按提示完成剩余的安全配置流程即可

操作注意事项

  • 不要将--skip-grant-tables参数永久写入MySQL配置文件(/etc/my.cnf),否则会导致数据库长期处于无权限校验的高危状态
  • 如果执行ALTER USER语句时提示密码强度不符合规则,可临时在MySQL控制台执行SET GLOBAL validate_password.policy = LOW;降低校验等级,完成密码重置后再将参数调回默认值
  • 操作过程中避免强制终止进程或重启系统,防止MySQL系统库文件损坏导致数据异常
  • 临时密码校验失败的常见诱因:从日志提取临时密码时,密码首尾附带了空格、特殊字符被终端自动转义,完成密码重置后即可规避这类问题

内容的提问来源于stack exchange,提问作者Sebastian Charras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.28 17:45:03