4核8G服务器安装mysql?

在一台 4核8G 的服务器上安装 MySQL 是完全可行的,而且这种配置对于中小型应用或开发环境来说已经相当不错。以下是详细的安装步骤(以 MySQL 8.0 为例,操作系统为 CentOS 7/8 或 Ubuntu 20.04+)。


✅ 一、准备工作

1. 系统要求检查

  • CPU:4核
  • 内存:8GB
  • 磁盘:建议至少 20GB 可用空间(SSD 更佳)
  • 操作系统:推荐使用 CentOS 7+/8+ 或 Ubuntu 20.04+

4核8G 足以运行 MySQL 8.0,但需合理配置 my.cnf 避免内存溢出。


✅ 二、安装 MySQL(以 Ubuntu 20.04 为例)

方法一:Ubuntu 安装 MySQL 8.0

# 1. 更新系统包
sudo apt update

# 2. 安装 MySQL 服务器
sudo apt install mysql-server -y

# 3. 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql

# 4. 运行安全配置脚本(设置 root 密码、删除匿名用户等)
sudo mysql_secure_installation

执行 mysql_secure_installation 时:

  • 建议设置强密码
  • 删除匿名用户
  • 禁止 root 远程登录(除非需要)
  • 删除测试数据库
  • 重载权限表

方法二:CentOS 7/8 安装 MySQL 8.0

# 1. 添加 MySQL 官方 Yum 仓库
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

# 2. 安装 MySQL 服务器
sudo yum install mysql-server -y

# 3. 启动并开机自启
sudo systemctl start mysqld
sudo systemctl enable mysqld

# 4. 查看临时 root 密码(MySQL 8.0 首次启动会生成)
sudo grep 'temporary password' /var/log/mysqld.log

# 5. 运行安全配置
sudo mysql_secure_installation

注意:首次登录使用临时密码,之后会强制修改。


✅ 三、配置优化(适用于 4核8G)

编辑 MySQL 配置文件,优化性能和内存使用。

Ubuntu 路径:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

CentOS 路径:

sudo vim /etc/my.cnf

推荐配置(适用于 8G 内存):

[mysqld]
# 基础设置
port = 3306
bind-address = 0.0.0.0    # 允许远程连接(注意安全)
user = mysql

# 缓冲与缓存
key_buffer_size = 256M
max_allowed_packet = 64M
table_open_cache = 2048
sort_buffer_size = 4M
read_buffer_size = 4M
join_buffer_size = 4M
tmp_table_size = 256M
max_heap_table_size = 256M

# InnoDB 设置(重点)
innodb_buffer_pool_size = 4G      # 推荐为物理内存的 50%~70%
innodb_log_file_size = 512M       # 日志文件大小,影响恢复时间
innodb_log_buffer_size = 64M
innodb_flush_log_at_trx_commit = 1  # 安全模式,生产环境建议 1
innodb_file_per_table = 1
innodb_flush_method = O_DIRECT

# 连接相关
max_connections = 200             # 根据业务调整
thread_cache_size = 16
query_cache_type = 0              # MySQL 8.0 已移除查询缓存
query_cache_size = 0

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

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

# 跳过主机名解析(提升连接速度)
skip-name-resolve

修改后重启 MySQL:

sudo systemctl restart mysql   # Ubuntu
# 或
sudo systemctl restart mysqld  # CentOS

✅ 四、防火墙设置(如需远程访问)

# Ubuntu (ufw)
sudo ufw allow 3306

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

⚠️ 注意:开放 3306 端口有安全风险,建议:

  • 使用 SSH 隧道
  • 限制 IP 访问(如只允许特定 IP)
  • 使用强密码 + 用户权限控制

✅ 五、创建用户并授权(示例)

-- 登录 MySQL
sudo mysql -u root -p

-- 创建新用户(示例)
CREATE USER 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!';

-- 授权(示例:授予所有权限,生产环境应最小权限)
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;

-- 刷新权限
FLUSH PRIVILEGES;

✅ 六、监控与维护建议

  • 使用 mysqltuner.pl 工具分析性能建议:

    wget http://mysqltuner.pl
    perl mysqltuner.pl
  • 定期备份(使用 mysqldumpxtrabackup

  • 监控慢查询日志

  • 使用 htopiotop 观察系统资源


✅ 总结

项目 推荐值
服务器配置 4核8G
MySQL 版本 8.0
innodb_buffer_pool_size 4G
max_connections 200
是否开启远程 按需,注意安全
存储引擎 InnoDB(默认)

如你有具体用途(如 WordPress、Java 应用、高并发等),可进一步调优配置。需要我帮你生成 my.cnf 模板或监控脚本吗?

未经允许不得转载:ECLOUD博客 » 4核8G服务器安装mysql?