加油
努力

腾讯云轻量应用服务器如何部署MySQL数据库?

在腾讯云轻量应用服务器(Lighthouse)上部署 MySQL 数据库,推荐使用 官方镜像一键部署手动安装 两种方式。以下是详细、安全、适合生产/开发环境的完整指南(以 Ubuntu 22.04 / CentOS 7+ 为例,推荐 Ubuntu 系统):


✅ 推荐方案一:使用腾讯云「MySQL 应用镜像」(最快最省心)

✅ 优势:预装 MySQL(如 8.0),已优化配置、开放端口、设置 root 密码,5 分钟完成
⚠️ 注意:仅适用于新建实例时选择

步骤:

  1. 登录 腾讯云控制台
  2. 进入「轻量应用服务器」→「创建实例」
  3. 在「应用镜像」页签中,搜索并选择:
    • MySQL 8.0(Ubuntu 22.04)或 MySQL 5.7(CentOS 7)
  4. 完成其他配置(地域、套餐、密钥对等),点击「创建」
  5. 实例启动后,通过 SSH 登录:
    ssh -i your-key.pem ubuntu@你的公网IP  # Ubuntu 镜像默认用户为 ubuntu
    # 或
    ssh -i your-key.pem root@你的公网IP      # CentOS 镜像默认为 root
  6. 获取初始 root 密码(关键!):
    # Ubuntu 镜像(密码写入文件):
    sudo cat /root/mysql_root_password.txt
    # CentOS 镜像:
    sudo cat /root/.mysql_secret
  7. 登录 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/32192.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 = 128M
key_buffer_size = 16M

✅ 最佳实践总结

  • 首选应用镜像:省时省力,预优化,适合新手
  • 永远修改 root 密码,禁用远程 root
  • 安全组最小化放行,仅允许可信 IP 访问 3306
  • 定期备份:用 mysqldump + 腾讯云 COS 自动备份
  • 监控资源:轻量服务器内存小,避免运行多个大内存服务

需要我为你提供:

  • ✅ 自动备份脚本(每日压缩 + 上传 COS)
  • ✅ Docker 方式部署 MySQL(隔离性更好)
  • ✅ 连接 PHP/Node.js/Python 的示例代码
  • ✅ 主从复制配置指南

欢迎随时告诉我你的具体需求(如操作系统、用途、是否需网络访问),我可以为你定制完整脚本 👍

云服务器