在CentOS或Ubuntu云服务器上部署MySQL的基础步骤如下:
一、系统准备
1. 更新系统包
# CentOS/RHEL
sudo yum update -y
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
2. 安装必要工具
# CentOS
sudo yum install -y wget vim
# Ubuntu
sudo apt install -y wget vim
二、MySQL安装
CentOS 7/8 安装 MySQL
# 1. 添加MySQL Yum仓库
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 2. 安装MySQL服务器
sudo yum install -y mysql-community-server
# 3. 启动MySQL服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
Ubuntu 20.04/22.04 安装 MySQL
# 1. 下载MySQL APT仓库
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
# 2. 安装仓库配置
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
sudo apt update
# 3. 安装MySQL服务器
sudo apt install -y mysql-server
# 4. 启动MySQL服务
sudo systemctl start mysql
sudo systemctl enable mysql
三、初始安全配置
1. 获取临时密码(CentOS 8/MySQL 8.0)
sudo grep 'temporary password' /var/log/mysqld.log
2. 运行安全脚本
sudo mysql_secure_installation
按照提示:
- 设置root密码
- 移除匿名用户
- 禁止远程root登录
- 移除测试数据库
- 重新加载权限表
四、基础配置
1. 登录MySQL
mysql -u root -p
2. 创建新用户和数据库
-- 创建数据库
CREATE DATABASE mydatabase;
-- 创建用户并授权
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
-- 允许远程访问(谨慎使用)
CREATE USER 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
3. 配置远程访问(可选)
编辑MySQL配置文件:
# CentOS
sudo vim /etc/my.cnf
# Ubuntu
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address 并修改:
bind-address = 0.0.0.0 # 允许所有IP访问
# 或
bind-address = 服务器IP # 指定IP访问
重启MySQL服务:
sudo systemctl restart mysqld # CentOS
sudo systemctl restart mysql # Ubuntu
五、防火墙配置
CentOS防火墙
# 开放3306端口
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
Ubuntu防火墙
# 如果使用ufw
sudo ufw allow 3306/tcp
sudo ufw reload
六、性能优化(可选)
1. 调整配置文件
sudo vim /etc/my.cnf # 或 /etc/mysql/my.cnf
添加基础优化参数:
[mysqld]
# 内存设置(根据服务器内存调整)
innodb_buffer_pool_size = 1G
key_buffer_size = 256M
max_connections = 200
# 日志设置
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
2. 重启MySQL应用配置
sudo systemctl restart mysqld/mysql
七、备份与监控
1. 创建备份脚本
#!/bin/bash
BACKUP_DIR="/backup/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
mysqldump -u root -p'your_password' --all-databases | gzip > $BACKUP_DIR/full_backup_$DATE.sql.gz
2. 设置定时备份
# 编辑crontab
crontab -e
# 添加每天凌晨备份
0 2 * * * /path/to/backup_script.sh
八、安全建议
- 使用强密码:包含大小写字母、数字和特殊字符
- 定期更新:保持MySQL版本最新
- 限制访问:仅允许必要的IP访问
- 启用SSL:生产环境建议启用SSL连接
- 监控日志:定期检查MySQL错误日志和慢查询日志
快速检查清单
- [ ] MySQL服务正在运行
- [ ] 防火墙端口已开放
- [ ] root密码已修改
- [ ] 匿名用户已删除
- [ ] 测试数据库已移除
- [ ] 备份机制已设置
根据实际需求选择MySQL版本(5.7或8.0),生产环境建议使用MySQL 8.0并配置主从复制和高可用方案。
CLOUD技术笔记