在腾讯云服务器(CVM)上手动安装和配置 MySQL,推荐通过官方源或编译安装。以下以 Ubuntu 20.04/22.04 和 CentOS 7/8 为例,采用 官方 APT/YUM 源安装 MySQL 8.0(稳定且安全),并包含基础配置与远程访问设置。
✅ 一、前置准备
- 登录腾讯云控制台 → CVM 实例 → 安全组
- 放行端口:3306(TCP),仅允许必要 IP 或全部(生产环境建议限制来源 IP)。
- 确保服务器可联网(用于下载包):
ping www.baidu.com
✅ 二、Ubuntu 系统安装步骤(推荐 Ubuntu 20.04+)
1. 更新软件源
sudo apt update && sudo apt upgrade -y
2. 添加 MySQL APT 仓库
# 下载 MySQL 官方 GPG 密钥
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
# 注意:版本号可能变化,请查看 https://dev.mysql.com/downloads/repo/apt/ 获取最新链接
# 安装并配置仓库(交互式选择版本,选 MySQL 8.0)
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
# 弹出界面时:
# • MySQL Server version: 选择 "MySQL 8.0"
# • 其他保持默认 → OK
# 再次更新源
sudo apt update
3. 安装 MySQL Server
sudo apt install mysql-server -y
⚠️ 安装过程中会提示设置 root 密码(强烈建议设置强密码)。
4. 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
sudo systemctl status mysql # 确认运行状态
5. 安全加固(关键!)
sudo mysql_secure_installation
按提示操作:
VALIDATE PASSWORD COMPONENT→ N(避免过严策略影响开发)Remove anonymous users?→ YDisallow root login remotely?→ Y(后续再按需开放)Remove test database?→ YReload privilege tables now?→ Y
✅ 三、CentOS 系统安装步骤
1. 安装依赖 & 下载 RPM
sudo yum install -y wget curl
# 下载 MySQL 8.0 YUM 配置包(官网获取最新链接)
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
# 或 el7 版本:mysql80-community-release-el7-11.noarch.rpm
2. 安装并启用 MySQL 8.0 源
sudo rpm -Uvh mysql80-community-release-el8-1.noarch.rpm
sudo yum makecache
sudo yum install mysql-server -y
3. 启动服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld
4. 获取临时 root 密码
安装后,MySQL 会在 /var/log/mysqld.log 中生成临时密码:
sudo grep 'temporary password' /var/log/mysqld.log
# 输出示例:
# [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Abc123!xyz
5. 修改 root 密码并安全加固
mysql -u root -p
# 输入上面查到的临时密码
进入 MySQL 后执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPassword123!';
FLUSH PRIVILEGES;
EXIT;
然后运行:
sudo mysql_secure_installation
同样按上述选项完成加固(远程 root 登录建议先设为 N)。
✅ 四、配置远程访问(可选但常用)
🔒 生产环境务必结合安全组 + 白名单 IP,不要直接开放所有 IP!
方法一:修改用户权限(推荐)
sudo mysql -u root -p
-- 创建允许远程登录的用户(替换 IP 为可信客户端 IP)
CREATE USER 'appuser'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
方法二:修改 bind-address(如未绑定 localhost)
编辑配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf # Ubuntu
# 或
sudo vim /etc/my.cnf # CentOS
找到并修改:
[mysqld]
bind-address = 0.0.0.0 # 默认是 127.0.0.1,改为 0.0.0.0 允许外部连接
重启服务:
sudo systemctl restart mysql # 或 mysqld
✅ 验证远程连接(在本地机器测试):
mysql -h <你的公网IP> -P 3306 -u appuser -p
✅ 五、防火墙检查(腾讯云安全组已做,但系统防火墙仍需关注)
- Ubuntu (ufw):
sudo ufw allow 3306/tcp sudo ufw reload - CentOS (firewalld):
sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
✅ 六、验证安装成功
mysql -u root -p
SHOW DATABASES;
SELECT VERSION();
📌 补充建议
| 项目 | 建议 |
|---|---|
| 备份 | 定期使用 mysqldump 或云数据库自动备份功能 |
| 监控 | 开启腾讯云云监控(Cloud Monitor)监控 CPU、内存、磁盘 IO |
| 性能优化 | 根据业务调整 my.cnf 中的 innodb_buffer_pool_size(建议占物理内存 50%~70%) |
| 高可用 | 如需主从复制/集群,建议使用腾讯云 TencentDB for MySQL(托管版更可靠) |
需要我提供:
- 自动化脚本(Ansible/Bash)?
- Docker 方式安装 MySQL?
- 主从复制配置示例?
欢迎告诉我具体需求,我可进一步细化方案。
PHPWP博客