云服务器1核1g 安装mysql?

在云服务器(1核1G 内存)上安装 MySQL 是可以实现的,但需要注意资源限制问题。MySQL 在默认配置下可能对 1 核 1G 的机器来说稍显吃力,尤其是在并发访问较多时。但如果你只是用于学习、测试或者轻量级网站,是可以运行的。

下面是一个完整的安装和优化指南:


🧾 一、系统环境要求

  • 操作系统:以 CentOS 7/8Ubuntu 20.04+ 为例
  • CPU:1 核
  • 内存:1GB RAM
  • 硬盘:至少 10GB 剩余空间

🛠️ 二、安装 MySQL(以 CentOS 为例)

1. 添加 MySQL 官方源(以 MySQL 8.0 为例)

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

注意:根据你的 CentOS 版本调整上面的 URL。

2. 安装 MySQL 服务

sudo yum install mysql-server

3. 启动 MySQL 并设置开机启动

sudo systemctl start mysqld
sudo systemctl enable mysqld

4. 获取初始密码并登录 MySQL

sudo grep 'temporary password' /var/log/mysqld.log

输出类似如下内容:

A temporary password is generated for root@localhost: abcdefg123!

使用这个密码登录 MySQL:

mysql -u root -p

然后修改密码(必须符合安全策略):

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword123!';

⚙️ 三、优化 MySQL 配置(针对 1G 内存)

编辑 MySQL 配置文件:

sudo vi /etc/my.cnf

[mysqld] 段中添加或修改以下参数:

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock

skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
innodb_log_buffer_size = 2M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50

query_cache_type = 0
query_cache_size = 0

tmp_table_size = 16M
max_connections = 50
wait_timeout = 28800
interactive_timeout = 28800

这些配置是为了尽量减少内存占用,适用于小型站点或开发测试环境。

保存后重启 MySQL:

sudo systemctl restart mysqld

🔐 四、安全加固建议

  1. 运行安全初始化脚本
sudo mysql_secure_installation

按提示操作:删除匿名用户、禁止远程 root 登录、删除 test 数据库等。

  1. 创建普通用户而不是用 root
CREATE USER 'youruser'@'%' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON yourdb.* TO 'youruser'@'%';
FLUSH PRIVILEGES;
  1. 防火墙开放 3306 端口(如需远程访问)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

📊 五、监控与性能建议

  • 使用 htopfree -htop 监控内存使用情况。
  • 如果经常出现 OOM(Out of Memory),可以考虑:
    • 开启 Swap 分区(临时缓解)
    • 升级服务器配置
    • 改用 MariaDB(更轻量)

💡 六、Swap 分区设置(可选)

对于 1G 内存的服务器,开启 Swap 可以避免内存不足导致的崩溃。

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

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

# 设置 swappiness(推荐值 10)
sudo sysctl vm.swappiness=10
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

✅ 总结

项目 推荐配置
操作系统 CentOS 7+/Ubuntu 20.04+
MySQL 版本 8.0.x 或 5.7.x
最大连接数 不超过 50
InnoDB 缓冲池大小 128MB 左右
是否启用 Swap 强烈建议

如果你只是用来做开发调试或个人博客数据库,1核1G 是可以胜任的,但要注意定期监控资源使用情况,避免因内存不足导致 MySQL 被 OOM Killer 杀掉。

需要我帮你写一个一键安装脚本吗?

未经允许不得转载:云计算HECS » 云服务器1核1g 安装mysql?