四次元科技

科技、动漫、生活、学习以及一切

低配VPS上的MySQL优化

如果各位自己搞过网站的人可能会比较熟悉宝塔面板这个东西,装环境简单好用,我这个站也是一直在用其实是因为我太菜不会运维。不过新版的宝塔限制了MySQL不能在内存小于1.5G的机器里安装,而我正好前几天把自己的服务器配置缩到了1G,这就十分难受了。不过后来找了点资料,发现了解决办法。

配置

首先打开/www/server/panel/data/plugin.json这个配置文件,然后通过关键词找到如下代码:

{
    "name": "mysql",
    "versions": [{
            "m_version": "5.5",
            "dependnet": "",
            "version": "62",
            "os_limit": 0,
            "cpu_limit": 1,
            "mem_limit": 256
        },
        {
            "m_version": "5.6",
            "dependnet": "",
            "version": "45",
            "os_limit": 0,
            "cpu_limit": 1,
            "mem_limit": 768
        },
        {
            "m_version": "5.7",
            "dependnet": "",
            "version": "27",
            "os_limit": 0,
            "cpu_limit": 1,
            "mem_limit": 1560
        },
        {
            "m_version": "5.1",
            "dependnet": "",
            "version": "73",
            "os_limit": 0,
            "cpu_limit": 1,
            "mem_limit": 128
        },
        {
            "m_version": "AliSQL",
            "dependnet": "",
            "version": "5.6.32",
            "os_limit": 0,
            "cpu_limit": 1,
            "mem_limit": 768
        },
        {
            "m_version": "mariadb_10.0",
            "dependnet": "",
            "version": "38",
            "os_limit": 0,
            "cpu_limit": 1,
            "mem_limit": 768
        },
        {
            "m_version": "mariadb_10.1",
            "dependnet": "",
            "version": "40",
            "os_limit": 0,
            "cpu_limit": 1,
            "mem_limit": 1024
        },
        {
            "m_version": "mariadb_10.2",
            "dependnet": "",
            "version": "25",
            "os_limit": 0,
            "cpu_limit": 1,
            "mem_limit": 1024
        },
        {
            "m_version": "mariadb_10.3",
            "dependnet": "",
            "version": "16",
            "os_limit": 0,
            "cpu_limit": 1,
            "mem_limit": 1500
        },
        {
            "m_version": "8.0",
            "dependnet": "",
            "version": "17",
            "os_limit": 1,
            "cpu_limit": 2,
            "mem_limit": 4096
        }
    ],
    "os": "Linux"
}

然后把你需要安装的版本的mem_limit改成0,保存,就可以去安装了。

优化内存占用

其实宝塔之所以不让小内存机器装MySQL5.7,其实也是因为这玩意内存占用是真的高,启动就占300M,一跑起来随便就五六百。不过咱们的网站需求并不高,所以完全可以降低点配置。
先吧InnoDB关了,这玩意启动就会占好几百,反正MyISAM也是够用的。

default_storage_engine = MyISAM

剩下的就不多说,按下图配,暴力缩减内存占用到350M。连512的小鸡都吃的下。

各位朋友如果装宝塔面板,建议还是装在CentOS上,我发现在Ubuntu上用宝塔,数据库安装总有奇奇怪怪的问题,到CentOS就一路畅通,反正怪得很。