跳至正文
设计笔记 静水流深,美语善缘
代码 约 2 分钟阅读

解决 mariadb/mysql 在低配 VPS 上崩溃问题

博客在低配 VPS 上运行时,可能因内存不足导致 MariaDB/MySQL 崩溃。解决方法包括将 `/etc/my.cnf` 中的 `innodb_buffer_pool_size` 设置为 64M,以减少内存占用。如果问题仍然存在,建议设置 1G 的 swap 交换分区,缓解内存压力。通过创建和启用 swap 文件,并在 `/etc/fstab` 添加对应配置,可有效防止数据库因内存不足而崩溃。重启服务器后可用 `free -m` 查看内存使用情况。

最近博客又抽风了,打开主页后提示 Error Establishing a Database Connection 。仔细想想,应该就是数据库服务器 mariadb 挂了;以前也遇到过类似的问题。经过分析日志,并结合网上的资料最终解决了问题。

解决方法:

打开 /etc/my.cnf 查找 innodb_buffer_pool_size 将值设置为64M,一般是因为这个地方的值设置的过高内存紧张导致数据库因为内存不足而挂掉。

基本上上面设置之后,应该不会再遇到数据库挂掉的问题了,但是如果设置之后,依然会遇到此类问题,可以考虑设置 swap 交换分区,当系统因为突发事件导致内存不足时,软件会将一部分数据通过 swap 进行中转,不至于使软件崩溃。

运行下面命令设置 swap (1G):

dd if=/dev/zero of=/swapfile bs=1024 count=1048576
mkswap /swapfile
swapon /swapfile
最后,在 /etc/fstab 中添加下面一行:
/swapfile       swap    swap defaults   0 0
重启服务器,使用 free -m 即可查看到内存情况了。