在腾讯云轻量应用服务器(Lighthouse)上部署 MySQL 数据库,推荐使用 官方镜像一键部署 或 手动安装 两种方式。以下是详细、安全、适合生产/开发环境的完整指南(以 Ubuntu 22.04 / CentOS 7+ 为例,推荐 Ubuntu 系统):
✅ 推荐方案一:使用腾讯云「MySQL 应用镜像」(最快最省心)
✅ 优势:预装 MySQL(如 8.0),已优化配置、开放端口、设置 root 密码,5 分钟完成
⚠️ 注意:仅适用于新建实例时选择
步骤:
- 登录 腾讯云控制台
- 进入「轻量应用服务器」→「创建实例」
- 在「应用镜像」页签中,搜索并选择:
- ✅
MySQL 8.0(Ubuntu 22.04)或MySQL 5.7(CentOS 7)
- ✅
- 完成其他配置(地域、套餐、密钥对等),点击「创建」
- 实例启动后,通过 SSH 登录:
ssh -i your-key.pem ubuntu@你的公网IP # Ubuntu 镜像默认用户为 ubuntu # 或 ssh -i your-key.pem root@你的公网IP # CentOS 镜像默认为 root - 获取初始 root 密码(关键!):
# Ubuntu 镜像(密码写入文件): sudo cat /root/mysql_root_password.txt # CentOS 镜像: sudo cat /root/.mysql_secret - 登录 MySQL 验证:
mysql -u root -p # 输入上一步获取的密码
✅ 成功!此时 MySQL 已运行(服务名 mysql,端口 3306,绑定 127.0.0.1 默认,不对网络开放)
✅ 方案二:手动安装 MySQL(更灵活,推荐用于已有实例)
适用场景:已有轻量服务器(如已装 Nginx/Python),需追加 MySQL
▶️ Ubuntu 22.04/20.04(推荐)
# 1. 更新系统
sudo apt update && sudo apt upgrade -y
# 2. 安装 MySQL Server(官方 APT 源,自动安装 8.0+)
sudo apt install mysql-server -y
# 3. 启动并设开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
# 4. 运行安全加固脚本(强烈建议!)
sudo mysql_secure_installation
# 按提示操作:设置 root 密码(选 Y)、删除匿名用户、禁止远程 root、删除 test 库、重载权限表
▶️ CentOS 7/8(使用官方 RPM 包)
# CentOS 7 示例(MySQL 8.0)
sudo yum install -y wget
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
sudo yum install mysql-community-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 查看初始密码(首次启动生成)
sudo grep 'temporary password' /var/log/mysqld.log
# 运行安全配置
sudo mysql_secure_installation
🔐 关键安全与配置优化(必做!)
1️⃣ 修改 root 远程访问(如需网络连接)
⚠️ 警告:生产环境不建议开放 root 远程登录!请创建专用用户 + 白名单 IP
-- 登录 MySQL(本地)
mysql -u root -p
-- 创建新用户(替换 'your_password' 和 '192.168.1.%' 为你的 IP 段或具体 IP)
CREATE USER 'appuser'@'192.168.1.%' IDENTIFIED BY 'StrongPass123!';
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'192.168.1.%' WITH GRANT OPTION;
-- 或仅允许本地(更安全):
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'StrongPass123!';
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;
2️⃣ 修改 MySQL 绑定地址(默认只监听 127.0.0.1)
# 编辑配置文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf # Ubuntu
# 或
sudo nano /etc/my.cnf # CentOS
# 找到 bind-address 行,改为:
bind-address = 127.0.0.1 # ← 保持此值(最安全)
# 若必须网络访问(不推荐),改为:
# bind-address = 0.0.0.0
# 保存后重启
sudo systemctl restart mysql
3️⃣ 腾讯云安全组放行(重要!)
- 进入控制台 → 轻量服务器 → 实例详情 → 「安全组」→「配置规则」
- 添加入站规则:
- 类型:
MySQL(3306) - 协议:
TCP - 端口:
3306 - 源 IP:严格限制(如
你的办公IP/32或192.168.1.100/32),❌ 切勿填0.0.0.0/0
- 类型:
4️⃣ (可选)启用 MySQL 8.0 默认强密码策略
-- 查看当前策略
SHOW VARIABLES LIKE 'validate_password%';
-- 如需降低要求(开发环境),可在 /etc/mysql/mysql.conf.d/mysqld.cnf 中添加:
# validate_password.policy=LOW
# validate_password.length=4
# 然后重启 MySQL
🧪 验证是否部署成功
# 检查服务状态
sudo systemctl status mysql
# 本地连接测试
mysql -u root -p -e "SELECT VERSION();"
# 查看监听端口(应显示 :3306)
sudo ss -tuln | grep :3306
🚫 常见问题 & 解决
| 问题 | 原因 | 解决 |
|---|---|---|
Can't connect to local MySQL server |
服务未启动 | sudo systemctl start mysql |
| 远程连接被拒 | ① 安全组未放行 ② bind-address=127.0.0.1 ③ 用户无远程权限 | 三者逐项检查 |
Access denied for user 'root'@'xxx' |
root 默认禁止远程登录 | 创建新用户并授权(见上文) |
| 内存不足崩溃(轻量 1G 内存) | MySQL 默认配置过高 | 编辑 /etc/mysql/mysql.conf.d/mysqld.cnf,添加:innodb_buffer_pool_size = 128Mkey_buffer_size = 16M |
✅ 最佳实践总结
- ✅ 首选应用镜像:省时省力,预优化,适合新手
- ✅ 永远修改 root 密码,禁用远程 root
- ✅ 安全组最小化放行,仅允许可信 IP 访问 3306
- ✅ 定期备份:用
mysqldump+ 腾讯云 COS 自动备份 - ✅ 监控资源:轻量服务器内存小,避免运行多个大内存服务
需要我为你提供:
- ✅ 自动备份脚本(每日压缩 + 上传 COS)
- ✅ Docker 方式部署 MySQL(隔离性更好)
- ✅ 连接 PHP/Node.js/Python 的示例代码
- ✅ 主从复制配置指南
欢迎随时告诉我你的具体需求(如操作系统、用途、是否需网络访问),我可以为你定制完整脚本 👍
云小栈