CentOS或Ubuntu云服务器部署MySQL需要哪些基础步骤?

在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

八、安全建议

  1. 使用强密码:包含大小写字母、数字和特殊字符
  2. 定期更新:保持MySQL版本最新
  3. 限制访问:仅允许必要的IP访问
  4. 启用SSL:生产环境建议启用SSL连接
  5. 监控日志:定期检查MySQL错误日志和慢查询日志

快速检查清单

  • [ ] MySQL服务正在运行
  • [ ] 防火墙端口已开放
  • [ ] root密码已修改
  • [ ] 匿名用户已删除
  • [ ] 测试数据库已移除
  • [ ] 备份机制已设置

根据实际需求选择MySQL版本(5.7或8.0),生产环境建议使用MySQL 8.0并配置主从复制和高可用方案。

云服务器