在腾讯云CVM(Cloud Virtual Machine)上安装和配置MySQL数据库是一个常见的操作,适用于搭建Web应用、后端服务等场景。以下是详细的步骤指南,以 CentOS 7/8 或 Ubuntu 20.04/22.04 为例。
🛠 一、准备工作
-
登录CVM实例
- 使用SSH连接到你的腾讯云CVM:
ssh root@<你的CVM公网IP>
- 使用SSH连接到你的腾讯云CVM:
-
更新系统包(推荐)
- 对于 CentOS/RHEL:
sudo yum update -y - 对于 Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y
- 对于 CentOS/RHEL:
🐬 二、安装 MySQL 数据库
✅ 方法一:安装 MySQL Community Server(推荐)
1. 添加 MySQL 官方 Yum/Apt 源
➤ CentOS / RHEL 系统:
# 下载并安装 MySQL Yum 源
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
# 安装 MySQL Server
sudo yum install mysql-server -y
注意:根据你的系统版本选择合适的源(如 el7、el8),可查看 MySQL 官方文档。
➤ Ubuntu / Debian 系统:
# 安装 wget(如果未安装)
sudo apt install wget -y
# 下载 MySQL APT 配置包
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
# 安装配置包(会弹出配置界面,选择 MySQL 8.0 版本)
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
# 更新包列表
sudo apt update
# 安装 MySQL 服务器
sudo apt install mysql-server -y
🔧 三、启动并配置 MySQL
1. 启动 MySQL 服务
# CentOS
sudo systemctl start mysqld
sudo systemctl enable mysqld
# Ubuntu
sudo systemctl start mysql
sudo systemctl enable mysql
2. 查看初始密码(仅首次安装时需要)
MySQL 8.0 安装后会生成一个临时 root 密码。
# 查看临时密码
sudo grep 'temporary password' /var/log/mysqld.log
# 或者 Ubuntu 上可能是:
sudo grep 'temporary password' /var/log/mysql/error.log
输出示例:
A temporary password is generated for root@localhost: abc123!XYZ
🔐 四、安全初始化配置
运行安全脚本设置 root 密码、移除匿名用户等:
sudo mysql_secure_installation
按提示操作:
- 输入当前 root 密码(刚才查到的临时密码)
- 设置新的强密码
- 删除匿名用户? →
Y - 禁止 root 远程登录? →
Y(生产环境建议禁止) - 删除 test 数据库? →
Y - 重新加载权限表? →
Y
🌐 五、允许远程访问(可选)
默认情况下,MySQL 只允许本地连接。若需从外部连接(如本地程序、其他服务器):
1. 修改 MySQL 配置文件
编辑配置文件:
sudo vim /etc/my.cnf.d/mysql-server.cnf # CentOS
# 或
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # Ubuntu
找到 bind-address 行,修改为:
bind-address = 0.0.0.0
⚠️ 生产环境中建议绑定具体 IP 或通过跳板机访问,避免暴露数据库。
2. 重启 MySQL 服务
sudo systemctl restart mysqld # CentOS
# 或
sudo systemctl restart mysql # Ubuntu
3. 创建远程访问用户(推荐非 root 用户)
进入 MySQL 命令行:
mysql -u root -p
执行 SQL:
-- 创建新用户(例如:dbuser,密码为 your_password)
CREATE USER 'dbuser'@'%' IDENTIFIED BY 'your_password';
-- 授予该用户所有权限(可根据需要限制数据库)
GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'%' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
%表示允许从任意 IP 连接,也可指定特定 IP 如'dbuser'@'1.2.3.4'
🔒 六、配置腾讯云安全组(关键!)
必须在腾讯云控制台中放行 MySQL 端口(默认 3306):
- 登录 腾讯云控制台
- 进入 云服务器 CVM > 安全组
- 找到绑定到该 CVM 的安全组
- 添加入站规则:
- 协议类型:TCP
- 端口:3306
- 源 IP:建议填写你的 IP 或内网段(如
203.0.113.10/32),不建议开放 0.0.0.0/0
⚠️ 开放 3306 到公网有风险,请配合强密码、防火墙、定期更新补丁使用。
🧪 七、测试连接
你可以使用以下方式测试:
1. 本地测试
mysql -u dbuser -p -h localhost
2. 外部工具连接
使用 Navicat、DBeaver、MySQL Workbench 等客户端,输入:
- 主机:CVM 公网 IP
- 端口:3306
- 用户名:dbuser
- 密码:your_password
📦 八、其他建议
| 项目 | 建议 |
|---|---|
| 数据目录 | 默认 /var/lib/mysql,可挂载高性能云硬盘 |
| 备份策略 | 使用 mysqldump 或 XtraBackup 定期备份 |
| 监控 | 配合云监控或 Prometheus + Grafana |
| 性能优化 | 调整 innodb_buffer_pool_size 等参数 |
❌ 常见问题排查
| 问题 | 解决方法 |
|---|---|
| 无法远程连接 | 检查安全组、bind-address、用户权限 |
| 登录失败 | 检查用户名、密码、是否已 FLUSH PRIVILEGES |
| 服务无法启动 | 查看日志 journalctl -u mysqld 或 /var/log/mysqld.log |
| 端口被占用 | netstat -tuln | grep 3306 |
✅ 总结
你已经成功在腾讯云 CVM 上安装并配置了 MySQL 数据库。关键步骤包括:
- 安装 MySQL 软件包
- 初始化并设置 root 密码
- 配置远程访问(可选)
- 开放安全组端口
- 创建专用数据库用户
如需自动化部署,可以结合 Terraform + Ansible 或使用腾讯云的 MySQL 云数据库(CDB) 服务(更推荐生产环境使用托管数据库)。
如有具体操作系统版本或需求(如主从复制、SSL 加密等),欢迎继续提问!
CLOUD技术笔记