Debian10编译安装Mysql5.7.44
时间: 2025-07-24 17:29:50 浏览: 16
<think>我们正在Debian 10上编译并安装MySQL 5.7.44。由于MySQL官方提供了二进制发行版,但用户要求编译安装,因此我们需要从源代码编译。
步骤概览:
1. 安装必要的编译工具和依赖库
2. 下载MySQL 5.7.44源代码
3. 配置编译选项
4. 编译并安装
5. 初始化MySQL系统库
6. 启动MySQL服务
7. 设置root密码
详细步骤:
1. 安装依赖包
首先更新系统并安装编译所需的工具和库:
```bash
sudo apt update
sudo apt upgrade -y
sudo apt install -y cmake build-essential libncurses5-dev libssl-dev libboost-all-dev
```
注意:MySQL 5.7需要Boost库,我们通过`libboost-all-dev`安装。
2. 下载源代码
从MySQL官方网站下载源代码,这里我们使用wget下载(注意:需要找到确切的源码包地址,这里以MySQL社区版为例):
```bash
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz
tar -zxvf mysql-5.7.44.tar.gz
cd mysql-5.7.44
```
3. 配置编译选项
使用cmake进行配置。我们可以指定安装目录(例如`/usr/local/mysql`)以及其他选项。这里我们使用一个常见的配置:
```bash
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_DEBUG=0
```
注意:如果配置过程中出现错误,需要根据错误信息解决依赖问题(可能缺少某些开发包),然后重新运行cmake。
4. 编译并安装
配置成功后,进行编译和安装:
```bash
make -j$(nproc) # 使用多核编译加速
sudo make install
```
5. 创建MySQL用户和组
```bash
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
```
6. 初始化数据目录
```bash
sudo mkdir -p /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql
cd /usr/local/mysql
sudo bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
```
注意:这里使用`--initialize-insecure`初始化,这样root用户初始密码为空。在生产环境中,请使用`--initialize`(会生成随机密码)并记录密码。
7. 设置配置文件
创建配置文件`/etc/my.cnf`,内容如下:
```ini
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
port=3306
# 其他配置项按需添加
```
8. 设置启动脚本
MySQL提供了启动脚本模板,我们可以复制并修改:
```bash
sudo cp support-files/mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld
```
然后使用systemd管理(推荐):
创建`/etc/systemd/system/mysqld.service`,内容如下:
```ini
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
Type=forking
ExecStart=/etc/init.d/mysqld start
ExecStop=/etc/init.d/mysqld stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
然后执行:
```bash
sudo systemctl daemon-reload
```
9. 启动MySQL服务
```bash
sudo systemctl start mysqld
```
10. 设置环境变量
将MySQL的bin目录添加到PATH中:
```bash
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
```
11. 设置root密码(如果之前使用了`--initialize-insecure`,则初始密码为空)
```bash
mysqladmin -u root password 'new-password'
```
12. 验证安装
```bash
mysql -u root -p
```
注意:以上步骤为编译安装MySQL的基本流程,具体环境可能需要调整。在编译过程中可能会遇到各种问题,需要根据错误信息解决。
引用说明:
[^1]: 在支持systemd的系统上,通常使用systemd管理MySQL服务,但这里我们使用了传统的启动脚本方式,并适配了systemd。
[^2]: 配置文件`/etc/my.cnf`的设置,确保MySQL服务启动时能正确加载。
[^3]: 安装目录的创建,这里我们指定了安装目录为`/usr/local/mysql`。
相关问题:
1. 在编译MySQL时遇到依赖问题如何解决?
2. 如何配置MySQL的安全选项?
3. MySQL 5.7有哪些重要的配置参数需要调整?</think>### 在 Debian 10 上编译安装 MySQL 5.7.44
#### 步骤 1:安装编译依赖
```bash
sudo apt update
sudo apt install -y cmake build-essential \
libncurses5-dev libssl-dev libboost-all-dev \
bison git wget
```
> **说明**:MySQL 5.7 需要 Boost 库和 OpenSSL 开发包[^1]。
#### 步骤 2:下载源码
```bash
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz
tar -zxvf mysql-5.7.44.tar.gz
cd mysql-5.7.44
```
#### 步骤 3:配置编译选项
```bash
mkdir build && cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/lib/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=../boost
```
> **关键参数**:
> - `INSTALL_PREFIX`:指定安装目录
> - `MYSQL_DATADIR`:设置数据库存储路径
> - `WITH_SSL=system`:使用系统 OpenSSL 库
#### 步骤 4:编译和安装
```bash
make -j$(nproc) # 使用所有 CPU 核心加速编译
sudo make install # 需要 root 权限
```
#### 步骤 5:创建系统用户和目录
```bash
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo mkdir -p /var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql
```
#### 步骤 6:初始化数据库
```bash
cd /usr/local/mysql
sudo bin/mysqld --initialize-insecure --user=mysql \
--basedir=/usr/local/mysql --datadir=/var/lib/mysql
```
> **注意**:`--initialize-insecure` 会创建空密码的 root 账户,生产环境应使用 `--initialize` 生成随机密码。
#### 步骤 7:配置 systemd 服务
创建服务文件 `/etc/systemd/system/mysqld.service`:
```ini
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld \
--basedir=/usr/local/mysql \
--datadir=/var/lib/mysql \
--plugin-dir=/usr/local/mysql/lib/plugin \
--log-error=/var/log/mysql/error.log
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
启用服务:
```bash
sudo systemctl daemon-reload
sudo systemctl enable mysqld
sudo systemctl start mysqld
```
#### 步骤 8:设置环境变量
```bash
echo 'export PATH=/usr/local/mysql/bin:$PATH' | sudo tee /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
```
#### 步骤 9:安全初始化
```bash
sudo mysql_secure_installation
```
> 按提示设置 root 密码、移除匿名用户等安全选项。
#### 验证安装
```bash
mysql -u root -p -e "SELECT VERSION();"
```
应输出:`5.7.44`
### 常见问题解决
1. **CMake 错误**:
- 检查缺失依赖:`sudo apt install libtinfo5`
- 清除缓存:`rm CMakeCache.txt`
2. **内存不足**:
```bash
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
sudo mkswap /swapfile && sudo swapon /swapfile
```
3. **服务启动失败**:
```bash
sudo journalctl -u mysqld -f # 查看实时日志
```
> **重要提示**:编译过程约需 1-2 小时(取决于硬件),建议在稳定环境中操作[^3]。
---
### 相关问题
1. MySQL 5.7 与 Debian 10 的兼容性问题有哪些?
2. 如何优化 MySQL 5.7 的编译参数提升性能?
3. 源码安装的 MySQL 如何升级到新版本?
4. 编译安装和包管理器安装的 MySQL 有何本质区别?
[^1]: MySQL 官方要求编译时必须安装 Boost 库和 OpenSSL 开发包
[^2]: 配置文件需正确设置数据目录和套接字路径
[^3]: 编译大型项目建议预留至少 4GB 内存空间
阅读全文
相关推荐


















