温馨提示×

如何编译debian mysql源码

小樊
34
2026-09-04 23:23:49
栏目: 云计算

下面给你一份在 Debian 上编译 MySQL 源码的通用流程(以 MySQL 8.0+ 为例,适用于 Debian 11/12)。如果你用的是 MySQL 5.7MariaDB,步骤会略有差异,我可以再补充。


一、准备编译环境

1. 安装基础工具

sudo apt update
sudo apt install -y build-essential cmake bison libncurses-dev \
  libssl-dev pkg-config libreadline-dev zlib1g-dev

2. 安装编译 MySQL 8 所需依赖

sudo apt install -y libtirpc-dev libprotobuf-dev protobuf-compiler \
  libboost-dev libboost-system-dev libboost-thread-dev

二、下载 MySQL 源码

方式一:官方源码包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.36.tar.gz
tar zxvf mysql-8.0.36.tar.gz
cd mysql-8.0.36

方式二:GitHub(推荐开发用)

git clone https://github.com/mysql/mysql-server.git
cd mysql-server
git checkout 8.0

三、创建构建目录(推荐 out-of-source 编译)

mkdir build
cd build

四、使用 CMake 配置

基础配置

cmake .. \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/usr/local/mysql/data \
  -DSYSCONFDIR=/etc \
  -DWITH_SSL=system \
  -DWITH_BOOST=/usr/include/boost \
  -DENABLED_LOCAL_INFILE=1 \
  -DCMAKE_BUILD_TYPE=Release

⚠ 注意:

  • MySQL 8 需要 Boost
  • 如果报 Boost 错误,可加:
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/tmp/boost

五、编译

make -j$(nproc)

编译时间取决于 CPU(通常 20–60 分钟)


六、安装

sudo make install

七、初始化 MySQL

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

cd /usr/local/mysql
mkdir data
chown -R mysql:mysql /usr/local/mysql

bin/mysqld --initialize --user=mysql

初始化后会输出 root 临时密码,请记下。


八、启动 MySQL

bin/mysqld_safe --user=mysql &

或修改 root 密码:

bin/mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

九、常见问题

1. 编译报错 C++17 不支持

sudo apt install g++-11
export CXX=g++-11

2. 内存不足

make -j2

3. 想精简编译

-DWITH_TESTS=OFF
-DWITH_EMBEDDED_SERVER=OFF

十、建议

  • 生产环境:优先用 Debian 官方 apt install mysql-server
  • 学习 / 定制:再考虑源码编译

如果你愿意,我可以:

  • 给你 MySQL 5.7 编译教程
  • 给你 Debian + systemd 服务配置
  • 帮你 debug 具体编译错误

你现在是学习源码,还是想定制功能?

0