宝塔Linux面板小内存服务器编译安装 MySQL 8.0

如果 1G 内存要装 MySQL 5.7,这篇文章也是适用的。

宝塔 6.9.8

宝塔面板在编译安装 MySQL 8.0 时,要求 4个核心的 CPU,8G 内存,实在是太高了,小站长的服务器一般都不会有如此高的配置。这时候,我们要使用 MySQL 8.0,可以选择极速安装,或者,如果一定要自己编译的话,可以使用命令行来跳过配置检测。不过,MySQL 编译过程中,需要 5G 以上的内存,以及 9G 以上的数据盘空间。如果我们的内存实在不够,可以创建 swap 虚拟内存。

在宝塔面板里的 Linux 工具箱(如果没有可以去软件商店里面安装) 修改 Swap/虚拟内存,输入 0,然后手动设置 swap 到系统盘:

1
2
3
4
5
6
fallocate -l 4G /swap
chown root:root /swap
chmod 0600 /swap
mkswap /swap
swapon /swap
echo '/swap swap swap defaults 0 0' >> /etc/fstab

查看一下 swap 是否开启成功:

1
2
3
4
swapon -s

Filename Type Size Used Priority
/swap file 4194300 9480 -2

现在内存有 5933M,应该够了,我们还要检查一下,/www 所在的磁盘够不够,建议剩余空间不小于 10G。如果不够,把不需要的文件删一下,或者扩容磁盘,这里不赘述。

现在磁盘也够了,再检查一下你的临时文件夹 /tmp,一般来说,这个路径在系统盘,共享你系统盘的空间。不过,某些服务器的 /tmp 是单独挂载的,空间也非常小,这个时候,要把它也增大。比如,我们可以同样调整到 10G。

1
echo 'tmpfs   /tmp  tmpfs   defaults,size=10G    0 0' >> /etc/fstab

重启系统,检查一下各路径的大小:

1
2
3
4
5
6
7
8
9
10
11
df -h

Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 7.2G 12G 39% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 5.9M 914M 1% /dev/shm
tmpfs 919M 584K 919M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vdb1 20G 6.3G 13G 34% /www
tmpfs 10G 336K 10G 1% /tmp
tmpfs 184M 0 184M 0% /run/user/0

这回肯定够用了。

由于服务器配置较低,编译过程耗时可能超过两小时,为了防止意外断网停止编译,我们先来创建一个新的 screen:

1
yum install screen -y && screen -S mysql

现在窗口空白了,其实这是一个新的窗口。

运行以下命令,编译安装 MySQL 8.0:

1
2
cd /www/server/panel/install
bash mysql.sh install 8.0

慢慢等,实在等不下去的时候,新建一个终端会话,输入

1
screen -d mysql

让它自己慢慢装,大概两小时后,输入

1
screen -r mysql

看到 done,就成功了。


今天发现一个后遗症,宝塔数据库工具页面空白,不显示数据表。请宝塔开发者排查了一下,说是 mysqldb 库内部编码转换出错,于是强制重装 mysql-python

1
pip install mysql-python --force

结果遇到报错

1
_mysql.c:44:23: fatal error: my_config.h: No such file or directory

搜索得到的解决方案是安装 mysql-devel,不过我这边之前已经安装过了,于是尝试重新安装:

1
yum reinstall mysql-devel -y && pip install mysql-python --force

这次顺利完成。

不过,问题仍然未解决。无奈之下,打算重启面板试试。不过转念一想,修复面板也会自动重启,顺便还能修复其他问题,比如宝塔本周修复的一些已知问题。于是尝试修复面板,修复完成后,问题解决。