在 Debian 系统上**编译安装 MySQL(源码方式)**通常用于需要特定版本或自定义参数的场景。下面以 Debian 11/12 为例,详细说明从源码编译安装 MySQL 的完整流程(以 MySQL 8.0 为例)。
sudo apt update
sudo apt upgrade -y
sudo apt install -y \
build-essential \
cmake \
bison \
libncurses5-dev \
libssl-dev \
pkg-config \
libmysqlclient-dev \
wget \
git
MySQL 8.0 以后 不再支持 autotools,必须使用 CMake
cd /usr/local/src
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(较慢):
git clone https://github.com/mysql/mysql-server.git
cd mysql-server
git checkout 8.0
强烈建议 out-of-source 编译
mkdir build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_TCP_PORT=3306 \
-DWITH_SSL=system \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci
echo $?
返回 0 表示成功。
make -j$(nproc)
编译时间较长(10–40 分钟,取决于 CPU)
sudo make install
安装完成后:
ls /usr/local/mysql
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo mkdir -p /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql
sudo bin/mysqld \
--initialize \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
初始化后会生成 root 临时密码,请记录:
[Note] A temporary password is generated for root@localhost: xxxxxxxx
sudo bin/mysqld_safe --user=mysql &
/usr/local/mysql/bin/mysql -u root -p
sudo nano /etc/systemd/system/mysqld.service
内容:
[Unit]
Description=MySQL Server
After=network.target
[Service]
Type=forking
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe
ExecStop=/usr/local/mysql/bin/mysqladmin shutdown
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable mysqld
sudo systemctl start mysqld
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
/usr/local/mysql/bin/mysql_secure_installation
make -j2
MySQL 8 需要 Boost:
sudo apt install libboost-all-dev
或在 CMake 中指定:
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
✅ 推荐 APT 安装(除非你有特殊需求):
sudo apt install mysql-server
| 步骤 | 说明 |
|---|---|
| 依赖 | build-essential、cmake |
| 编译 | make -j |
| 安装 | make install |
| 初始化 | mysqld --initialize |
| 启动 | systemd / mysqld_safe |
如果你需要:
可以直接告诉我你的具体需求。