[Seek Help] [问题求助] MySQL不支持问题等两则
Tofloor
poster avatar
Felix.Fei
deepin
2026-02-26 12:22
Author

各位好。

我用了一段时间的Deepin,以前娱乐上网用,最近打算把Deepin也变成开发节点机。

但是安装MySQL的时候遇到了不支持/不兼容的错误,无法继续

图我就不截了,反正就一句话:Unsupported distribution deepin

……

算了还是截一下吧:

image.png

请问如何解决?有没有神贴参考?

另外还有一件事,Deepin是不是从23的Beta版开始,内核就离开Debian全面转向了Linux Kernel了?

Reply Favorite View the author
All Replies
raspbian
deepin
2026-02-26 13:47
#1

直接用docker吧

在这个问题上纠结不值得

另外 你如果按照常规方式安装根本轮不到他问这个啊

截屏2026-02-26 13.51.00.png

Reply View the author
Felix.Fei
deepin
2026-02-26 15:15
#2
raspbian

直接用docker吧

在这个问题上纠结不值得

另外 你如果按照常规方式安装根本轮不到他问这个啊

截屏2026-02-26 13.51.00.png

什么是常规方式,不太明白。

因为之前Ubuntu安装了,就按照同样的步骤和文件资源来。反正都是Debian。

后来听说Deepin分离了Debian。是从23开始的吗?

你这个连接是直接下载tar,我那个是用deb归档文件安装,路数不同。

Docker我早就有,在别的机器上,我所有的工作节点都要有数据库,差这台本机。

Reply View the author
raspbian
deepin
2026-02-26 15:46
#3
Felix.Fei

什么是常规方式,不太明白。

因为之前Ubuntu安装了,就按照同样的步骤和文件资源来。反正都是Debian。

后来听说Deepin分离了Debian。是从23开始的吗?

你这个连接是直接下载tar,我那个是用deb归档文件安装,路数不同。

Docker我早就有,在别的机器上,我所有的工作节点都要有数据库,差这台本机。

从专业角度来说 叫一个后端或者运维搭建mysql 百分之百不会有人用apt的

对你的需求来说 docker或者图中这种安装方式 选一个吧

另外 你不是要搞分布式数据库吧?

Reply View the author
Felix.Fei
deepin
2026-02-26 21:39
#4
raspbian

从专业角度来说 叫一个后端或者运维搭建mysql 百分之百不会有人用apt的

对你的需求来说 docker或者图中这种安装方式 选一个吧

另外 你不是要搞分布式数据库吧?

首先我是不是专业后端都会选择更洒瓜的方式,否则我交付的时候怎么跟客户讲自运维的事宜,只不过deepin我之前一直没用在开发上。

当然我也会尝试工具的方式,因为我之前干活用的是Windows,apt安装包就跟exe文件差不多,我就选用了。命令式的如果安装包工具搞不定再用,能工具化的工作就工具化,专不专业都一样。

另外我的确是在搞分布式DB,配合前后分离微服务,在移动一个项目。

秉持专业精神这问题我也需要弄清楚,形成经验,如果是内核不适配原因,我也会回到DP20试试。

====Updated====

你所说的专业常规的方式是不是这个,刚找的:

https://bbs.deepin.org/zh/post/270747

我之前参考的是MySQL官网的:https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/

坛子的这个我得空会尝试,但还是要弄懂我所提问题的答案。

Reply View the author
RucLinux
deepin
2026-02-27 14:19
#5

用编译安装不可以吗?不一定非要apt,有些源里的mysql不一定适用所有系统版本

Reply View the author
tasuo
deepin
2026-02-27 15:08
#6

整个“脱离Debian”的计划在更早的2022年就已确立,并在2024年的V23正式版中最终完成。

Reply View the author
Felix.Fei
deepin
2026-02-28 11:23
#7
tasuo

整个“脱离Debian”的计划在更早的2022年就已确立,并在2024年的V23正式版中最终完成。

感谢回答Q2,那我搞个V20 latest备着。

Reply View the author
Felix.Fei
deepin
2026-02-28 11:50
#8
RucLinux

用编译安装不可以吗?不一定非要apt,有些源里的mysql不一定适用所有系统版本

所以这确定还是跟“去Debian化”有关是吗?

Reply View the author
邋遢真人
deepin
2026-02-28 16:53
#9

都玩Linux桌面了还不用容器化吗?docker或者podman安装MySQL、PostgreSQL、Redis、MongoDB都简单的很。虽然没有直接安装性能高但是测试开发足够了。

Reply View the author
RucLinux
deepin
2026-03-02 14:28
#10
Felix.Fei

所以这确定还是跟“去Debian化”有关是吗?

这个与有没有去debian是没有关系的。

一些源里,所有打包的一些软件包,如果不是因为重大更新的话,这些源里也不会有更新的。

特别是deb系和rpm系

有些版本的源里会有更新包,有些源的版本里不会有更新包,这个不是跟哪个版本有关

那是跟维护的社区人员认知和积极性有关

很多更新只有软件包的官方会积极更新,但国外很多软件包都只提供二进制源码,需要使用者单独编译

其实编译代码也很简单,问ai,几句话就可以给你一键脚本

我是deepin系统,需要安装mysql,请给我一键编译安装脚本,可以自动排除兼容,自动安装依赖,有选项可以输入用户名:用户组和密码

!/bin/bash

==========================================
Deepin MySQL 8.0 一键编译安装脚本
功能:自动安装依赖、编译、配置、初始化
适用:Deepin (apricot/beige 等)
==========================================

set -e # 遇到错误立即停止

颜色定义
RED='033[0;31m'
GREEN='033[0;32m'
YELLOW='033[1;33m'
NC='033[0m' # No Color

echo -e "{GREEN}=========================================={NC}"
echo -e "{GREEN}  Deepin MySQL 8.0 一键编译安装脚本      {NC}"
echo -e "{GREEN}=========================================={NC}"

--- 1. 获取用户输入 ---
echo -e "{YELLOW}[步骤 1/6] 请配置 MySQL 管理员信息:{NC}"

read -p "请输入 MySQL 用户名 (默认: root): " MYSQL_USER
MYSQL_USER={MYSQL_USER:-root}

read -p "请输入 MySQL 用户组 (默认: mysql): " MYSQL_GROUP
MYSQL_GROUP={MYSQL_GROUP:-mysql}

while true; do
    read -s -p "请输入 MySQL 密码 (输入时不可见): " MYSQL_PASS
    echo ""
    read -s -p "请再次确认密码: " MYSQL_PASS_CONFIRM
    echo ""
    if [ "MYSQL_PASS" == "MYSQL_PASS_CONFIRM" ]; then
        break
    else
        echo -e "{RED}❌ 两次输入的密码不一致,请重试.{NC}"
    fi
done

if [ -z "MYSQL_PASS" ]; then
    echo -e "{RED}❌ 密码不能为空!{NC}"
    exit 1
fi

--- 2. 安装编译依赖 ---
echo -e "{YELLOW}[步骤 2/6] 正在更新源并安装编译依赖...{NC}"
sudo apt update
sudo apt install -y build-essential cmake libssl-dev libncurses5-dev libboost-all-dev pkg-config libtirpc-dev rpcbind

--- 3. 下载源码 ---
echo -e "{YELLOW}[步骤 3/6] 正在下载 MySQL 8.0.36 源码 (约 300MB)...{NC}"
cd /tmp
MYSQL_VERSION="8.0.36"
MYSQL_FILE="mysql-{MYSQL_VERSION}.tar.gz"
DOWNLOAD_URL="https://dev.mysql.com/get/Downloads/MySQL-8.0/{MYSQL_FILE}"

if [ ! -f "MYSQL_FILE" ]; then
    wget -c "DOWNLOAD_URL" || { echo -e "{RED}❌ 下载失败,请检查网络或尝试手动下载后放入/tmp 目录{NC}"; exit 1; }
else
    echo "源码包已存在,跳过下载。"
fi

--- 4. 编译安装 ---
echo -e "{YELLOW}[步骤 4/6] 正在解压并编译 (这可能需要 15-30 分钟,请耐心等待)...{NC}"

创建用户和组
if ! getent group "MYSQL_GROUP" > /dev/null 2>&1; then
    sudo groupadd "MYSQL_GROUP"
fi
if ! id "MYSQL_USER" > /dev/null 2>&1; then
    sudo useradd -r -g "MYSQL_GROUP" -s /bin/false "MYSQL_USER"
fi

解压
tar -xzf "MYSQL_FILE"
cd "mysql-{MYSQL_VERSION}"

创建数据目录
sudo mkdir -p /data/mysql
sudo chown -R "MYSQL_USER":"MYSQL_GROUP" /data/mysql

配置 CMake
-DWITH_BOOST=system 使用系统安装的 boost,避免下载超时
cmake . \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/data/mysql \
    -DSYSCONFDIR=/etc \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DENABLED_LOCAL_INFILE=1 \
    -DDEFAULT_CHARSET=utf8mb4 \
    -DDEFAULT_COLLATION=utf8mb4_general_ci \
    -DWITH_BOOST=system \
    -DFORCE_INSOURCE_BUILD=1

编译 (使用所有 CPU 核心加速)
CPU_CORES=(nproc)
echo "检测到 {CPU_CORES} 个核心,开始编译..."
make -jCPU_CORES

安装
sudo make install

--- 5. 初始化与配置 ---
echo -e "{YELLOW}[步骤 5/6] 正在初始化数据库并配置环境变量...{NC}"

初始化数据库
sudo /usr/local/mysql/bin/mysqld --initialize-insecure --user="MYSQL_USER" --basedir=/usr/local/mysql --datadir=/data/mysql

设置权限
sudo chown -R "MYSQL_USER":"MYSQL_GROUP" /usr/local/mysql
sudo chown -R "MYSQL_USER":"MYSQL_GROUP" /data/mysql

创建配置文件
sudo tee /etc/my.cnf > /dev/null  /dev/null > ~/.bashrc
    source ~/.bashrc
fi

--- 6. 完成 ---
echo -e "{GREEN}=========================================={NC}"
echo -e "{GREEN}  ✅ 安装成功!{NC}"
echo -e "{GREEN}=========================================={NC}"
echo -e "📂 安装目录:/usr/local/mysql"
echo -e "📂 数据目录:/data/mysql"
echo -e "📂 配置文件:/etc/my.cnf"
echo -e "👤 运行用户:MYSQL_USER"
echo -e "🔐 管理员密码:MYSQL_PASS"
echo -e "🚀 服务状态:(systemctl is-active mysqld)"
echo ""
echo -e "💡 测试连接命令:"
echo -e "   mysql -uMYSQL_USER -p"
echo -e "{YELLOW}⚠️  请妥善保管您的密码!{NC}"

清理源码
echo -e "{YELLOW}[步骤 6/6] 正在清理临时源码文件...{NC}"
cd ~
sudo rm -rf /tmp/mysql-{MYSQL_VERSION}
sudo rm -rf /tmp/$MYSQL_FILE
echo "清理完成。"
Reply View the author