![Ubuntu 16.04 服务器中的 mysql 和内存问题](https://linux22.com/image/995895/Ubuntu%2016.04%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%AD%E7%9A%84%20mysql%20%E5%92%8C%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98.png)
几天前我在 Amazon 上设置了一个 VPS。我安装了 LAMP 服务器,然后上传了一些网站。一切都运行正常,直到昨天我注意到网站显示数据库连接错误。我检查了 /var/log/mysql/ 中的错误日志,似乎存在一些内存问题。您可以在此处查看错误日志中的最后记录: https://paste.ubuntu.com/23533774/
我从某处读到“无法为缓冲池分配内存”表明这是内存问题,解决方法是添加交换文件。
我想知道的是,我是否应该增加 VPS 的内存,或者我是否应该添加这个交换文件。或者也许还有其他我不知道的解决方案。
附加信息: - 现在可用的内存为 1GB - 大约有 2 个 html 网站、2 个 wordpress 网站、1 个 joomla 网站和 3 个其他 php 网站。可能还会添加几个网站。 - 这是我第一次设置服务器
我在这里先向您的帮助表示感谢。
答案1
根据https://stackoverflow.com/questions/10284532/amazon-ec2-mysql-aborting-start-because-innodb-mmap-x-bytes-failed-errno-12您需要添加一个交换页面。
您可以按照以下步骤设置交换页面:
http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html
根据这个网站(我只是在这里复制)
以下步骤展示了如何为您的 Micro 实例创建交换空间。我假设您有一个正在运行 Micro 实例的 AWS 账户。
- 跑步
dd if=/dev/zero of=/swapfile bs=1M count=1024
- 跑步
mkswap /swapfile
- 跑步
swapon /swapfile
- 将此行添加
/swapfile swap swap defaults 0 0
到/etc/fstab
如果您希望每次重启后自动启用交换文件,则需要执行步骤 4。
一些与 SWAP 空间相关的有用命令:
$ swapon -s
$ free -k
$ swapoff -a
$ swapon -a
参考: