debian 10 单独安装 mysql

之前在一步到位的 vps 从入门到放弃 | Bao’s 备忘录谈过可以用 lnmp / 宝塔去装 mysql。 不过很多时候我并不需要 php,我自己的 vps 主用 caddy 而不是 nginx,只有 mysql 是刚需,加上我个人秉承着 「apt + dpkg 走天下」的暴论,就想着有没有官方的使用 apt 的单独安装 mysql 的方法(

只谈安装,剩下的配置流程,以前谈过了,参考本文开头那篇文章。

使用 mysql-apt-config 安装

和 ubuntu 那边的 ppa 是类似的东西(

参考文章:How To Install the Latest MySQL on Debian 10 | DigitalOcean

  1. MySQL :: Download MySQL APT Repository 获取最新的 mysql-apt-config 安装包。拿到地址后直接到系统里面 wget,现在的版本是 0.8.16-1,so:

    1
    wget https://repo.mysql.com//mysql-apt-config_0.8.16-1_all.deb 
  2. 安装

    1
    sudo dpkg -i mysql-apt-config*

    更新一下 apt 库

    1
    apt update

    安装

    1
    apt install mysql-server

    安装过程中,会弹出两个窗口,一个是选择 mysql 需要安装的组件,一个是选择 mysql 的版本,目前可选 5.7 和 8.0;一个是输入 root 密码提权。

使用官网离线安装包

用上面的方法只能装两个版本,还要装更旧的就得去官网找包了。

下载

MySQL :: Download MySQL Community Server (Archived Versions)页面,选择相应版本和平台。

可以下载第一个 deb bundle,用于完全离线安装;也可以下载 mysql-community-server(上图第二个包)

下载 mysql-community-server 并修复安装(二选一)

若是下载 mysql-community-server 的话,同样是获取到下载连接然后用 wget 下载再用 dpkg 安装,不在赘述;安装中一定会报错:

不过可以用命令来修复:

1
apt --fix-broken install

不报错,并提示输入 root 密码的话,基本就安装成功了。

下载 deb bundle ,完全离线安装(二选一)

参考:MySQL :: MySQL Installation Guide :: 7.6 Installing MySQL on Linux Using Debian Packages from Oracle

下载 deb bundle 包后解压

1
2
3
mkdir mysql
tar -xvf mysql-server_*.tar -C ./mysql
cd mysql

安装 libaio

1
apt install libaio1 -y

配置,提权

1
dpkg-preconfigure mysql-community-server_*.deb

安装

1
dpkg -i mysql-{common,community-client,client,community-server,server}_*.deb

不过说是完全离线,大概率还是要修复依赖。。。

1
apt -f install -y

补充

卸载

没法用 apt remove 命令直接下载,错误的卸载方法还可能导致未来无法正常安装。

1
2
3
4
apt-get remove --purge mysql-server mysql-client mysql-common -y
apt-get autoremove -y
apt-get autoclean
rm -rf /etc/mysql

中间弹出 Remove data directories ?,选 yes。

提示 install: invalid user ‘mysql’

多半就是错误的卸载导致的。

运行

1
adduser mysql

设置一个密码即可。

版本选择

我闲的无聊折腾 mysql 安装就是因为我先装了 8.0 版本在 1g 的 azure 机子上,发现一重启探针就报警吃了 88% 内存,一排查发现是 mysql 的问题。

实测 8.0 版本吃的内存比 5.7 多一倍。。。换为 5.7,内存占用降为 63%。