温馨提示×

debian如何编译安装mysql

小樊
35
2026-09-17 00:44:28
栏目: 云计算

下面以 Debian 11/12 为例,说明 从源码编译安装 MySQL(以 MySQL 8.0 为例) 的完整步骤。
(如果你只是想用 MySQL,官方 apt 安装会更简单;编译主要用于定制参数或学习)


一、准备编译环境

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装编译依赖

sudo apt install -y \
  build-essential \
  cmake \
  bison \
  libncurses5-dev \
  libssl-dev \
  pkg-config \
  libaio-dev \
  wget \
  git

MySQL 8 需要 CMake ≥ 3.15


二、下载 MySQL 源码

官方源码(推荐)

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

或使用 Boost(MySQL 8 需要):

wget https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz
tar zxvf boost_1_77_0.tar.gz

三、创建用户和数据目录

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

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

四、CMake 配置

cd /usr/local/src/mysql-8.0.36

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

常见错误:

  • CMake 版本低 → 升级 cmake
  • Boost 路径错 → 检查 -DWITH_BOOST

五、编译并安装

make -j$(nproc)
make install

编译时间较长(可能 30 分钟 ~ 数小时)


六、初始化 MySQL

cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

初始化后会输出 root 临时密码,请保存。


七、配置 MySQL

1. 创建配置文件

vim /etc/my.cnf

示例:

[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306

八、启动 MySQL

手动启动

/usr/local/mysql/bin/mysqld_safe --user=mysql &

或加入 systemd

vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable mysqld
systemctl start mysqld

九、安全初始化

/usr/local/mysql/bin/mysql_secure_installation

十、登录测试

/usr/local/mysql/bin/mysql -uroot -p

常见问题

1. 忘记 root 密码

mysqld_safe --skip-grant-tables &

2. Debian 建议

  • 生产环境优先:apt install mysql-server
  • 编译适合:定制、学习、特定版本

如果你愿意,我可以:

  • 给你 Debian + MySQL 5.7 编译指南
  • CMake 参数优化建议
  • Docker 编译方案

你打算用在 生产还是学习

0