如何安全设置MySQL 5.7+密码?

首次安装后设置root密码

  1. 获取临时密码(适用于MySQL 5.7+)
    安装后首次启动时,MySQL会生成临时密码,查看方式:

    sudo grep 'temporary password' /var/log/mysqld.log  # Linux系统

    或检查Windows错误日志(默认位于C:\ProgramData\MySQL\MySQL Server X.X\Data)。

  2. 登录并修改密码

    mysql -u root -p  # 输入临时密码登录
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword1!';
    FLUSH PRIVILEGES;

修改已知用户的密码

方法1:ALTER USER(推荐)

-- 修改当前用户密码
ALTER USER USER() IDENTIFIED BY 'NewPassword123!';
-- 修改指定用户密码(示例:用户admin@localhost)
ALTER USER 'admin'@'localhost' IDENTIFIED BY 'SecurePass!2025';

方法2:SET PASSWORD

SET PASSWORD FOR 'user'@'host' = 'NewPassword456!';

忘记root密码的重置步骤

  1. 停止MySQL服务

    sudo systemctl stop mysqld  # Linux
    # 或 Windows服务管理器停止服务
  2. 启动无权限验证模式

    sudo mysqld_safe --skip-grant-tables --skip-networking &
  3. 无密码登录MySQL

    mysql -u root
  4. 重置密码

    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'ResetPassword789!';
    EXIT;
  5. 重启MySQL服务

    sudo systemctl restart mysqld

安全强化建议

  1. 密码复杂度要求

    • 默认启用密码策略,需包含大小写字母、数字、特殊字符(如)。
    • 查看策略:
      SHOW VARIABLES LIKE 'validate_password%';
  2. 避免使用弱密码
    若需降低策略(仅测试环境):

    SET GLOBAL validate_password.policy = LOW;  # 可选:LOW/MEDIUM/STRONG
  3. 定期更新密码

    ALTER USER 'user'@'host' IDENTIFIED BY 'NewPeriodicPass!2025';

常见问题解决

  • 错误1819:密码不符合策略 → 提高密码复杂度或调整策略。
  • 权限拒绝:确保执行用户有UPDATE权限或CREATE USER权限。
  • 插件兼容问题(MySQL 8.0+)
    若旧客户端不支持caching_sha2_password,改用传统插件:

    ALTER USER 'user'@'host' 
    IDENTIFIED WITH mysql_native_password BY 'password';

关键注意事项

  1. 生产环境必须使用强密码,避免简单字符串。
  2. 操作后务必执行 FLUSH PRIVILEGES; 刷新权限(部分命令自动触发)。
  3. Windows系统路径可能不同,需检查my.ini配置文件位置。

引用说明:本文操作基于MySQL 8.0官方文档(MySQL 8.0 Reference Manual)及安全实践指南,适用于CentOS/Ubuntu/Windows等主流环境,实际执行时请替换示例密码为符合策略的强密码。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9279.html

(0)
酷番叔酷番叔
上一篇 2025年7月30日 13:22
下一篇 2025年7月30日 13:40

相关推荐

  • 如何找到并打开终端?

    在计算机上查找并打开终端程序:Windows系统通过开始菜单搜索“命令提示符”或“PowerShell”;macOS在“应用程序”的“实用工具”文件夹中启动“终端”;Linux通常使用快捷键(如Ctrl+Alt+T)或应用程序菜单查找,打开后即可输入命令执行操作。

    2025年7月20日
    3400
  • Linux命令行怎么切换?新手必学快速切换技巧

    在Linux命令行操作中,“切换”是高频操作,涵盖用户身份、工作目录、运行模式、Shell环境等多个维度,掌握这些切换方法能显著提升操作效率,以下是详细说明,用户身份切换Linux是多用户系统,不同用户拥有不同权限,切换用户是常见需求,主要有两种方式:su和sudo,su命令:切换为其他用户(包括root)su……

    2025年8月25日
    2100
  • Linux下vi如何删除IP地址?

    vi(或vim)是Linux系统中功能强大的文本编辑器,当需要修改配置文件(如/etc/network/interfaces或/etc/sysconfig/network-scripts/ifcfg-eth0)删除IP地址时,掌握以下方法至关重要,操作前务必备份文件(例如使用cp 原文件 原文件.bak),避免……

    2025年7月13日
    3400
  • 怎么进grub有命令行界面

    系统启动时按特定键(如Esc、F2等,因机型而异)进入BIOS/UEFI设置,找到启动项选择含grub的磁盘,

    2025年8月17日
    1600
  • Linux find命令怎么用?新手入门到精通的实用方法与技巧全解析?

    find命令是Linux/Unix系统中功能强大的文件查找工具,它可以根据文件的名称、类型、大小、修改时间、权限等多种属性在指定目录及其子目录中搜索文件,并支持对找到的文件执行自定义操作,掌握find命令的用法能极大提升系统管理和文件处理的效率,下面从基本语法、常用选项、组合条件、执行操作及实践案例等方面详细介……

    5天前
    800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信