mysql在Windows环境下完整安装与初始化配置流程

1次阅读

Windows 下推荐使用 MSI 安装器(mysql-installer-community),因其自动处理服务注册、PATH 配置和初始密码设置;ZIP 版需手动配置 my.ini、注册服务及初始化数据目录,新手易出错。

mysql 在 Windows 环境下完整安装与初始化配置流程

下载 MySQL 安装包时该选 MSI 还是 ZIP?

Windows 下推荐直接使用 mysql-installer-community(MSI 图形化安装器),它会自动处理服务注册、PATH 添加、初始 root 密码设置等。ZIP 归档版虽轻量,但需手动配置 my.ini、注册 Windows 服务、初始化数据目录——新手极易卡在 mysqld --initialize 报错或服务启动失败。

注意:MySQL 8.0+ 默认启用 caching_sha2_password 认证插件,老版本客户端(如某些 Navicat 旧版、PHP 7.2 以下)可能连不上,这不是安装失败,是认证不兼容。

安装过程中必须改掉的默认选项

运行 MSI 安装器后,在「Setup Type」页选择 Server OnlyFull 即可,但以下三处必须手动干预:

  • 「Config Type」选 Development Computer(开发机),避免被强制设为高安全策略(比如禁用本地 socket 连接)
  • 「Authentication Method」务必勾选 Use Legacy Authentication Method(即 mysql_native_password),否则后续用命令行 mysql -u root -p 会提示 Client does not support authentication protocol requested by server
  • 「Root Password」必须设一个强密码并牢记;如果留空或跳过,安装器可能生成随机密码写入日志,但 Windows 事件查看器里难找,极易导致后续无法登录

安装后首次登录失败的典型原因与修复

安装完成点击「Next」退出后,常遇到 Access denied for user 'root'@'localhost'。这不是密码输错,而是服务未真正启动或认证方式不匹配:

  • 检查服务是否运行:services.msc 中查找 MySQL80(或你自定义的服务名),状态应为「正在运行」;若为「已停止」,右键启动,失败则看 Windows 事件日志中 Application 日志下的 MySQL 错误
  • 确认认证插件:
    mysql -u root -p -e "SELECT user, host, plugin FROM mysql.user WHERE user='root';"

    plugin 列显示 caching_sha2_password,需重置为传统方式:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码'; FLUSH PRIVILEGES;
  • 防火墙 或杀软拦截:临时关闭 Windows Defender 防火墙,测试能否连上;部分国产安全软件会静默拦截 mysqld.exe 网络行为

初始化配置文件 my.ini 的最小必要修改项

安装器生成的 my.ini 通常位于 C:ProgramDataMySQLMySQL Server 8.0my.iniProgramData 是隐藏文件夹)。必须检查并调整以下几项:

  • basedir 必须指向实际安装路径,例如 basedir=C:/Program Files/MySQL/MySQL Server 8.0(注意斜杠方向,Windows 下反斜杠易引发解析错误)
  • datadir 路径末尾不能有反斜杠,且目录必须存在、MySQL 服务账户(通常是 NT SERVICEMysql80)有完全控制权限;若手动迁移过数据目录,权限缺失会导致服务启动即退出
  • 添加 default_authentication_plugin=mysql_native_password[mysqld] 段下,确保新建用户默认用兼容认证
  • 如需远程访问,加 bind-address=0.0.0.0 并开放 Windows 防火墙 端口 3306,但生产环境严禁这么做

改完保存,重启 MySQL 服务生效。别信「改完自动热加载」——MySQL on Windows 不支持运行时重载 my.ini

text=ZqhQzanResources