奋斗
努力

阿里云轻量应用服务器2G2核配置安装MySQL8.0?

云计算

在阿里云轻量应用服务器(2核2G内存)上安装 MySQL 8.0 是完全可行的,但需要注意资源限制和配置优化,以确保数据库运行稳定。以下是详细的安装和优化步骤(以 CentOS 7/8 或 Ubuntu 20.04 为例):


✅ 一、系统准备

1. 更新系统

# CentOS / RHEL
sudo yum update -y

# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y

2. 检查内存使用情况

free -h

注意:2G 内存建议开启 Swap(虚拟内存),避免 MySQL 启动或运行时内存不足。

开启 Swap(如果未开启)

# 创建 2GB 的 swap 文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 永久生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

✅ 二、安装 MySQL 8.0

方法一:CentOS / RHEL 系统

1. 添加 MySQL 官方 Yum 源

sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

注意:根据你的系统版本选择(el7 或 el8)

2. 安装 MySQL 8.0

sudo yum install -y mysql-server

3. 启动并设置开机自启

sudo systemctl start mysqld
sudo systemctl enable mysqld

方法二:Ubuntu / Debian 系统

1. 添加 MySQL APT 源

# 下载 MySQL APT 配置包
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb

在安装过程中选择 MySQL 8.0,然后确认。

2. 安装 MySQL

sudo apt update
sudo apt install -y mysql-server

3. 启动服务

sudo systemctl start mysql
sudo systemctl enable mysql

✅ 三、初始化安全设置

sudo mysql_secure_installATION

该命令会引导你:

  • 设置 root 密码
  • 删除匿名用户
  • 禁止 root 远程登录
  • 删除 test 数据库
  • 重新加载权限

✅ 四、登录 MySQL

mysql -u root -p

✅ 五、配置优化(针对 2G 小内存)

MySQL 8.0 默认配置对 2G 内存偏高,建议调整配置文件以避免 OOM(内存溢出)。

编辑配置文件

sudo vim /etc/my.cnf    # CentOS
# 或
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf   # Ubuntu

添加或修改以下内容:

[mysqld]
# 基础设置
port = 3306
bind-address = 0.0.0.0   # 允许远程连接(可选,注意安全)
datadir = /var/lib/mysql

# 内存优化(关键!)
innodb_buffer_pool_size = 512M    # 通常为物理内存的 50%~70%,2G 机器建议 512M~1G
innodb_log_file_size = 128M       # 默认可能为 512M,可降低
key_buffer_size = 64M             # MyISAM 索引缓存,小即可
max_connections = 100             # 根据应用调整,避免过高
table_open_cache = 2000
tmp_table_size = 64M
max_heap_table_size = 64M

# 日志与性能
log-error = /var/log/mysqld.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 2

# 禁用性能模式(节省内存)
performance_schema = OFF

# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

⚠️ 修改 innodb_buffer_pool_size 后,需重启 MySQL。

重启 MySQL

sudo systemctl restart mysqld   # 或 mysql

✅ 六、允许远程访问(可选)

1. 创建远程访问用户

CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

2. 防火墙放行 3306 端口

# CentOS
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

# Ubuntu
sudo ufw allow 3306

3. 阿里云控制台安全组

  • 登录 阿里云轻量应用服务器控制台
  • 找到你的实例 → 配置安全组 → 添加规则:
    • 协议类型:自定义 TCP
    • 端口范围:3306
    • 授权对象:0.0.0.0/0(慎用,建议限制 IP)

✅ 七、监控与维护

查看 MySQL 状态

systemctl status mysqld

查看日志

sudo tail -f /var/log/mysqld.log

使用命令行监控

SHOW STATUS LIKE 'Threads_connected';
SHOW PROCESSLIST;

✅ 常见问题

问题 解决方案
启动失败,内存不足 增加 Swap,调小 innodb_buffer_pool_size
远程无法连接 检查 bind-address、防火墙、安全组、用户权限
root 密码忘记 进入安全模式重置密码

✅ 总结

在 2核2G 的轻量服务器上运行 MySQL 8.0 是可行的,但需注意:

  • 开启 Swap 防止内存溢出
  • 调低内存参数,避免占用过高
  • 定期备份,防止数据丢失
  • 生产环境建议升级到更高配置(如 4G+ 内存)

如果你需要,我也可以提供一键安装脚本或 Docker 安装方式(更轻量)。欢迎继续提问!

未经允许不得转载:云服务器 » 阿里云轻量应用服务器2G2核配置安装MySQL8.0?