在腾讯云 Windows Server 2019 实例上正确安装 MySQL 数据库,推荐采用 官方 MSI 安装包 + 手动配置 的方式(比 ZIP 解压版更稳定、服务管理更规范),并遵循安全最佳实践。以下是详细、可落地的操作指南:
✅ 前置准备
-
确认系统环境
- 腾讯云 CVM 已成功启动,操作系统为 Windows Server 2019(64位)
- 已使用管理员权限登录(建议通过「远程桌面」连接)
- 确保已关闭或配置好 Windows 防火墙(或放行 MySQL 端口)
- 网络安全组(腾讯云控制台)已放行 TCP 3306 端口(如需网络访问,强烈不建议直接开放3306到公网,见安全提示)
-
下载官方安装包
- 访问 MySQL 官网下载页面
- 选择:MySQL Community Server → Windows (x86, 64-bit), MSI Installer
- ✅ 推荐版本:MySQL 8.0.x LTS(如
8.0.33或最新8.0.x,避免使用 5.7,因已停止维护) - 下载后上传至服务器(如
C:mysql-installer.msi)
🛠 步骤一:运行 MySQL Installer(图形化安装)
⚠️ 必须以 管理员身份运行(右键 → “以管理员身份运行”)
- 双击
mysql-installer.msi,启动安装向导 - 选择安装类型:
- ✅ Server only(仅安装 MySQL Server)
(若需 Workbench 等工具,可选 "Full",但生产环境建议最小化安装)
- ✅ Server only(仅安装 MySQL Server)
- 检查依赖(Installer 会自动下载并安装 Visual C++ Redistributable 等必要组件)
- 点击 Execute 安装依赖 → 完成后点击 Next
🛠 步骤二:配置 MySQL Server(关键步骤!)
- 进入 Configuration 页面 → 点击 Next
- Type and Networking:
- Server Configuration:
Standalone MySQL Server - Connectivity:
- ✅ TCP/IP Enabled
- Port:
3306(默认,可自定义但需同步修改防火墙/安全组) - ❌ Skip Networking Configuration(不要勾选!否则禁用网络连接)
- 🔐 Use Strong Password Encryption(必须勾选,启用
caching_sha2_password插件)
- Server Configuration:
- Authentication Method:
- ✅ Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)
⚠️ 注意:MySQL 8.0 默认使用
caching_sha2_password,但部分旧客户端(如某些.NET驱动、老版Navicat)可能不兼容。
生产建议:保持默认(Strong Password),并在客户端升级支持后再使用;若必须兼容,再选 Legacy。
- ✅ Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)
- Accounts and Roles:
- 设置 root 密码(务必强密码!如
My$qlP@ss2024!) - 可添加其他管理用户(非必需,root 足够)
- 设置 root 密码(务必强密码!如
- Windows Service:
- ✅ Configure MySQL Server as a Windows Service
- Service Name:
MySQL80(默认,可自定义但勿含空格) - ✅ Start the MySQL Server at System Startup(开机自启)
- Apply Configuration → 点击 Execute,等待初始化完成(约1–2分钟)
- 点击 Finish 完成安装
✅ 验证安装是否成功
-
检查服务状态:
Win + R→ 输入services.msc→ 查找服务名MySQL80→ 状态应为 正在运行
-
命令行测试连接:
cd "C:Program FilesMySQLMySQL Server 8.0bin" mysql -u root -p # 输入安装时设置的 root 密码成功进入
mysql>提示符即表示安装成功。 -
查看基础信息:
SELECT VERSION(); SHOW VARIABLES LIKE 'port'; SHOW VARIABLES LIKE 'basedir'; EXIT;
🔐 关键安全加固(腾讯云环境必做!)
| 风险点 | 操作 | 说明 |
|---|---|---|
| ❌ 默认允许所有IP连接 | 编辑 my.ini(路径:C:ProgramDataMySQLMySQL Server 8.0my.ini) |
在 [mysqld] 下添加:bind-address = 127.0.0.1✅ 仅本地连接(最安全) 如需内网其他CVM访问,改为 bind-address = 0.0.0.0 + 严格限制安全组仅允许可信内网IP段(如 10.0.1.0/24) |
| ❌ root 远程登录 | 登录 MySQL 后执行: | sql<br>USE mysql;<br>DELETE FROM user WHERE Host NOT IN ('localhost', '127.0.0.1') AND User='root';<br>FLUSH PRIVILEGES;<br> |
| ❌ 弱密码 / 空密码 | 强制修改(如已泄露): | sql<br>ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'YourStrongPass123!';<br>FLUSH PRIVILEGES;<br> |
| ❌ 未限制安全组 | 腾讯云控制台 → 云服务器 CVM → 安全组 → 编辑规则 | 删除或禁用 3306 的 0.0.0.0/0 入站规则!仅保留:– 内网访问: 10.0.0.0/8(或具体子网)– 本地调试:你的办公IP(临时) |
💡 连接建议(开发/运维)
-
内网连接(推荐):
其他腾讯云 CVM 使用内网 IP(如10.0.1.100)+3306端口连接(需安全组放行) -
远程管理(谨慎):
✅ 使用 腾讯云堡垒机 或 SSH隧道(Windows 可用 PuTTY + OpenSSH)转发 3306
❌ 禁止直接将 3306 暴露到公网! -
客户端工具:
- 推荐:MySQL Workbench(官方,支持 8.0+)
- 替代:DBeaver(开源)、Navicat(需 ≥15.0 版本支持
caching_sha2_password)
❌ 常见错误及解决
| 现象 | 原因 | 解决方案 |
|---|---|---|
Can't connect to MySQL server on '127.0.0.1' (10061) |
服务未启动 / 端口被占 | services.msc 检查 MySQL80 服务状态;netstat -ano | findstr :3306 查端口占用 |
Access denied for user 'root'@'localhost' |
密码错误 / 认证插件不匹配 | 重置密码(官方文档)或检查安装时选的认证方式 |
| 安装卡在 "Starting the server…" | 杀毒软件拦截 / UAC 权限不足 | 临时关闭 Defender 实时防护;确保以管理员运行安装程序 |
The service already exists |
之前安装残留 | 运行 sc delete MySQL80(管理员CMD),删除 C:ProgramDataMySQL 目录,重装 |
✅ 最佳实践总结
- ✅ 使用 MySQL 8.0.x LTS + MSI 官方安装包
- ✅ 禁用公网 3306,仅通过内网或跳板机访问
- ✅
bind-address = 127.0.0.1+ 安全组最小化授权 - ✅ root 仅限本地登录,创建专用应用账号(
CREATE USER 'appuser'@'10.0.1.%' IDENTIFIED BY '...') - ✅ 定期备份(使用
mysqldump+ 腾讯云 COS 存储) - ✅ 启用 MySQL 错误日志与慢查询日志(
my.ini中配置log-error,slow_query_log)
如需自动化部署(例如配合腾讯云脚本或 Ansible),我可提供 PowerShell 一键安装脚本(含静默安装、安全配置、服务注册)。欢迎继续提问!
需要我为你生成该 PowerShell 脚本,或指导如何配置主从复制、读写分离? 😊
ECLOUD博客