下面给你一份在 Debian 上编译 MySQL 源码的通用流程(以 MySQL 8.0+ 为例,适用于 Debian 11/12)。如果你用的是 MySQL 5.7 或 MariaDB,步骤会略有差异,我可以再补充。
sudo apt update
sudo apt install -y build-essential cmake bison libncurses-dev \
libssl-dev pkg-config libreadline-dev zlib1g-dev
sudo apt install -y libtirpc-dev libprotobuf-dev protobuf-compiler \
libboost-dev libboost-system-dev libboost-thread-dev
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
git clone https://github.com/mysql/mysql-server.git
cd mysql-server
git checkout 8.0
mkdir build
cd build
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
⚠ 注意:
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/tmp/boost
make -j$(nproc)
编译时间取决于 CPU(通常 20–60 分钟)
sudo make install
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 临时密码,请记下。
bin/mysqld_safe --user=mysql &
或修改 root 密码:
bin/mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
C++17 不支持sudo apt install g++-11
export CXX=g++-11
make -j2
-DWITH_TESTS=OFF
-DWITH_EMBEDDED_SERVER=OFF
apt install mysql-server如果你愿意,我可以:
你现在是学习源码,还是想定制功能?