下载 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 Only或
Full即可,但以下三处必须手动干预: 「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:\ProgramData\MySQL\MySQL Server 8.0\my.ini(
ProgramData是隐藏文件夹)。必须检查并调整以下几项:
basedir必须指向实际安装路径,例如
basedir=C:/Program Files/MySQL/MySQL Server 8.0(注意斜杠方向,Windows 下反斜杠易引发解析错误)
datadir路径末尾不能有反斜杠,且目录必须存在、MySQL 服务账户(通常是
NT SERVICE\Mysql80)有完全控制权限;若手动迁移过数据目录,权限缺失会导致服务启动即退出 添加
default_authentication_plugin=mysql_native_password在
[mysqld]段下,确保新建用户默认用兼容认证 如需远程访问,加
bind-address=0.0.0.0并开放 Windows 防火墙端口 3306,但生产环境严禁这么做
改完保存,重启 MySQL 服务生效。别信「改完自动热加载」——MySQL on Windows 不支持运行时重载
my.ini。
