在腾讯云 CVM(云服务器)上安装配置 MySQL 数据库,推荐采用官方源或云市场镜像两种方式。以下是基于 Ubuntu/Debian 和 CentOS/RHEL 系统的详细步骤(以 MySQL 8.0 为例):
一、前置准备
- 登录腾讯云控制台 → 进入【云服务器】→ 选择目标 CVM → 点击【远程连接】(使用 SSH 工具如 PuTTY/Xshell,或直接通过网页版 VNC)。
-
确保系统已更新:
# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # CentOS/RHEL sudo yum update -y -
开放防火墙端口(MySQL 默认 3306):
# Ubuntu (ufw) sudo ufw allow 3306/tcp # CentOS (firewalld) sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload - (可选但推荐)在腾讯云控制台的安全组中添加入方向规则:协议 TCP,端口 3306,来源
0.0.0.0/0(生产环境建议限制为特定 IP)。
二、安装 MySQL
方式 A:使用官方 APT/YUM 源(推荐,版本可控)
✅ Ubuntu/Debian 安装 MySQL 8.0
# 1. 下载 MySQL APT 配置文件
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
# 按提示选择 MySQL Version: 8.0
# 2. 更新包列表并安装
sudo apt update
sudo apt install mysql-server -y
# 3. 启动并设置开机自启
sudo systemctl enable mysql
sudo systemctl start mysql
# 4. 安全初始化(设置 root 密码等)
sudo mysql_secure_installation
# 按提示操作:
# - 切换 Unix socket authentication? N(除非有特殊需求)
# - Set root password? Y → 输入强密码
# - Remove anonymous users? Y
# - Disallow root login remotely? N(若需远程访问则选 N;否则选 Y)
# - Remove test database? Y
# - Reload privilege tables? Y
✅ CentOS/RHEL 安装 MySQL 8.0
# 1. 添加 MySQL YUM 仓库
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-11.noarch.rpm
# 2. 安装 MySQL Server
sudo yum install mysql-community-server -y
# 3. 启动服务
sudo systemctl enable mysqld
sudo systemctl start mysqld
# 4. 获取临时 root 密码(首次安装后自动写入日志)
sudo grep 'temporary password' /var/log/mysqld.log
# 输出示例:[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xxxxxx
# 5. 登录并修改密码(必须立即修改!)
mysql -u root -p
# 输入上述临时密码 → 进入 MySQL 命令行
-- 在 MySQL 内执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
FLUSH PRIVILEGES;
EXIT;
💡 注意:MySQL 8.0 默认禁止远程 root 登录,且密码策略严格(长度≥8,含大小写+数字+特殊字符)。
三、配置远程访问(谨慎操作)
⚠️ 生产环境务必配合安全组 + 白名单 IP 使用,避免暴露公网。
1. 允许 root 从任意 IP 登录(不推荐,仅限测试)
CREATE USER 'root'@'%' IDENTIFIED BY 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
2. 推荐做法:创建专用用户 + 限制 IP
-- 创建只允许从特定 IP(如 1.2.3.4)登录的用户
CREATE USER 'appuser'@'1.2.3.4' IDENTIFIED BY 'AppUserPass123!';
GRANT SELECT, INSERT, UPDATE, DELETE ON your_database.* TO 'appuser'@'1.2.3.4';
FLUSH PRIVILEGES;
3. 修改绑定地址(默认仅监听 127.0.0.1)
编辑配置文件:
# Ubuntu: /etc/mysql/mysql.conf.d/mysqld.cnf
# CentOS: /etc/my.cnf.d/server.cnf
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf # 或对应路径
找到 [mysqld] 段,注释掉或修改:
bind-address = 0.0.0.0 # 监听所有网卡(生产环境建议改为具体内网 IP)
重启服务:
sudo systemctl restart mysql # Ubuntu
sudo systemctl restart mysqld # CentOS
四、验证安装
# 检查服务状态
systemctl status mysql # Ubuntu
systemctl status mysqld # CentOS
# 本地登录测试
mysql -u root -p
# 查看版本
mysql -V
五、进阶建议
| 项目 | 建议 |
|---|---|
| 备份 | 使用 mysqldump 定时备份,或启用腾讯云 DBS 服务 |
| 监控 | 开启 CloudMonitor 监控 CPU/内存/连接数 |
| 高可用 | 考虑部署主从复制或使用 TDSQL(云原生分布式数据库) |
| 性能优化 | 根据业务调整 innodb_buffer_pool_size、max_connections 等参数 |
| 替代方案 | 直接使用 腾讯云云数据库 MySQL(免运维、高可用、自动备份) |
需要我提供:
- Docker 快速部署脚本?
- 自动化 Ansible playbook?
- 针对 CentOS 7 / Ubuntu 20.04 的完整一键脚本?
欢迎告诉我你的系统版本和业务场景,我可定制方案。
CLOUD云枢