Debian编译安装mysql8.0.41源码包
以下是在Debian系统上通过编译源码安装MySQL 8.0.41的完整步骤,包含依赖管理、编译参数优化和常见问题处理:
准备工作
- 安装编译依赖
bash
sudo apt update
sudo apt install -y \
cmake gcc g++ make libssl-dev libncurses5-dev libtinfo-dev \
libreadline-dev zlib1g-dev libaio-dev libevent-dev \
bison pkg-config
- 下载MySQL 8.0.41源码包
bash
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41
关键配置与编译
3. 配置CMake参数(优化版)
bash
mkdir build && cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql8 \
-DMYSQL_DATADIR=/var/lib/mysql8 \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_BOOST=../boost \
-DENABLE_DOWNLOADS=OFF \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_0900_ai_ci \
-DFORCE_INSOURCE_BUILD=1
- 启动编译(多核加速)
bash
make -j$(nproc) 2>&1 | tee compile.log # 记录编译日志
sudo make install
系统集成与初始化
5. 创建专用用户和目录
bash
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo mkdir -p /var/lib/mysql8
sudo chown -R mysql:mysql /usr/local/mysql8 /var/lib/mysql8
- 初始化数据库(自动生成临时密码)
bash
cd /usr/local/mysql8
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql8 --datadir=/var/lib/mysql8
记录临时密码(查看日志或输出):
bash
sudo grep 'temporary password' /var/lib/mysql8/*.log
- 配置文件
my.cnf
bash
sudo nano /etc/mysql8.cnf # 新建专用配置文件
输入以下内容:
ini
[mysqld]
user=mysql
basedir=/usr/local/mysql8
datadir=/var/lib/mysql8
socket=/tmp/mysql8.sock
port=3307 # 避免与系统自带MySQL冲突
log-error=/var/log/mysql8/error.log
服务管理与安全配置
8. 创建Systemd服务
bash
sudo nano /etc/systemd/system/mysql8.service
输入以下内容:
ini
[Unit]
Description=MySQL Server 8.0.41
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/etc/mysql8.cnf
Restart=on-failure
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
- 启动服务并设置开机自启
bash
sudo systemctl daemon-reload
sudo systemctl start mysql8
sudo systemctl enable mysql8
- 修改root密码
bash
/usr/local/mysql8/bin/mysql -u root -p --socket=/tmp/mysql8.sock
输入临时密码后执行:
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourSecurePassword123!';
FLUSH PRIVILEGES;
高级优化配置
- 内存参数调整(根据服务器配置)
ini
# 在/etc/mysql8.cnf的[mysqld]段添加
innodb_buffer_pool_size=2G
key_buffer_size=512M
max_connections=500
- 开启慢查询日志
ini
slow_query_log=1
slow_query_log_file=/var/log/mysql8/slow.log
long_query_time=2
故障排查指南
现象 | 解决方法 |
---|---|
编译时报Boost not found |
确认源码包是否完整,检查-DWITH_BOOST=../boost 参数指向正确目录 |
启动时权限错误 | 执行sudo chown -R mysql:mysql /var/lib/mysql8 修复权限 |
端口冲突 | 修改/etc/mysql8.cnf 中的port 值,并重启服务 |
无法连接socket | 检查/tmp/mysql8.sock 是否存在,或显式指定socket路径连接 |
版本管理建议
-
多版本共存
通过不同端口(如3306/3307)和socket路径实现多MySQL实例共存。 -
环境变量隔离
为编译版MySQL单独设置PATH:bashecho 'export PATH=/usr/local/mysql8/bin:$PATH' >> ~/.bashrc
通过以上步骤,您可以在Debian系统上安全地编译安装MySQL 8.0.41,并获得完全可控的自定义配置。此方法适合需要深度定制或运行多版本MySQL的环境。
以下是在Debian系统下编译安装MySQL 8.0.41源码包的详细步骤:
1. 安装编译依赖
bash
sudo apt update
sudo apt install cmake libncurses-dev libssl-dev make gcc g++ bison
sudo apt install libtinfo5 zlib1g-dev libreadline-dev
2. 下载源码包
bash
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41
3. 创建构建目录并配置
bash
mkdir build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1
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 /var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql
记录输出的临时root密码(示例:A temporary password is generated for root@localhost: xxxxxxxx
)
7. 配置服务文件
bash
sudo cp support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo update-rc.d mysql defaults
8. 启动MySQL服务
bash
sudo systemctl start mysql
9. 设置环境变量
bash
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
10. 登录并修改root密码
bash
mysql -u root -p
# 输入初始化时记录的临时密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
exit
11. 验证安装
bash
mysql --version
# 应显示:mysql Ver 8.0.41 for Linux on x86_64 (Source distribution)
补充说明:
-
如果编译时出现依赖缺失错误,根据提示安装对应开发包(如
sudo apt install libxxx-dev
) -
可通过以下命令查看完整编译选项:
bash
cmake .. -L
-
默认数据目录:
/var/lib/mysql
-
默认配置文件:
/etc/my.cnf
(需手动创建) -
建议定期执行:
bash
sudo apt update && sudo apt upgrade
sudo /usr/local/mysql/bin/mysql_upgrade -u root -p
完成以上步骤后,您的MySQL 8.0.41源码编译安装即完成。建议通过SHOW VARIABLES LIKE "%version%";
命令在MySQL客户端中再次验证版本信息。
以下是基于知识库信息整理的在Debian系统上编译安装MySQL 8.0.41源码包的步骤指南:
步骤 1:安装编译环境和依赖项
bash
sudo apt update
sudo apt install -y build-essential cmake libncurses-dev libssl-dev libaio-dev libelf-dev libmecab-dev libreadline-dev libbz2-dev liblz4-dev liblzma-dev libzstd-dev libjemalloc-dev libnuma-dev libcurl4-openssl-dev libprotobuf-dev protobuf-compiler libmysqlclient-dev
步骤 2:下载 MySQL 8.0.41 源码包
bash
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41
步骤 3:配置编译选项
bash
# 创建构建目录(可选,但推荐)
mkdir build
cd build
# 执行 CMake 配置(根据需求调整参数)
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/lib/mysql \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_SSL=system \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=boost # 如果没有 Boost 库,可添加 -DWITH_BOOST=system 或手动下载 Boost
参数说明:
-DCMAKE_INSTALL_PREFIX
:指定安装路径(默认/usr/local/mysql
)。-DMYSQL_DATADIR
:指定数据目录(默认/var/lib/mysql
)。-DDEFAULT_CHARSET
和-DDEFAULT_COLLATION
:设置默认字符集和排序规则。-DWITH_SSL=system
:使用系统 SSL 库。-DWITH_BOOST
:指定 Boost 库路径(如果未安装 Boost,可添加-DWITH_BOOST=system
或下载 Boost 源码)。
步骤 4:编译和安装
bash
# 编译(使用多线程加速,如 4 核 CPU 可用 -j4)
make -j4
# 安装
sudo make install
步骤 5:初始化 MySQL 数据目录
bash
# 创建 MySQL 数据目录和用户
sudo mkdir -p /var/lib/mysql
sudo groupadd mysql
sudo useradd -r -g mysql -s /sbin/nologin mysql
# 将目录权限赋予 mysql 用户
sudo chown -R mysql:mysql /usr/local/mysql
sudo chown -R mysql:mysql /var/lib/mysql
# 初始化数据库
sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql
步骤 6:配置 MySQL 系统服务
bash
# 复制 MySQL 系统服务配置文件
sudo cp support-files/mysql.server /etc/init.d/mysql
# 赋予执行权限
sudo chmod +x /etc/init.d/mysql
# 设置开机自启
sudo update-rc.d mysql defaults
步骤 7:配置 my.cnf
bash
# 创建或编辑配置文件
sudo vi /etc/my.cnf
# 示例配置(根据需求调整):
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
innodb_buffer_pool_size=1G
[client]
default-character-set=utf8mb4
socket=/var/run/mysqld/mysqld.sock
步骤 8:启动 MySQL 服务
bash
sudo service mysql start
步骤 9:安全设置
bash
# 运行安全脚本(设置 root 密码、删除匿名用户等)
sudo /usr/local/mysql/bin/mysql_secure_installation
常见问题解决
-
依赖项缺失:
-
如果编译时提示缺少库(如
libssl-dev
),安装对应包:bashsudo apt install <package-name>
-
-
Boost 库缺失:
-
若编译时提示缺少 Boost,可手动下载并编译:
bashwget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz tar -zxvf boost_1_78_0.tar.gz cd boost_1_78_0 ./bootstrap.sh ./b2 sudo ./b2 install
-
-
权限问题:
-
确保数据目录和安装目录的权限正确:
bashsudo chown -R mysql:mysql /var/lib/mysql
-
验证安装
bash
# 检查 MySQL 版本
/usr/local/mysql/bin/mysql --version
# 登录 MySQL(使用步骤 9 设置的 root 密码)
/usr/local/mysql/bin/mysql -u root -p
注意事项
- 如果遇到
cmake
配置失败,请检查输出的错误信息并调整参数。 - MySQL 8.0 需要较新的编译工具链,确保系统依赖已更新。
- 如果使用自定义路径,需确保环境变量(如
PATH
)包含/usr/local/mysql/bin
。
如果需要进一步优化或调整配置,可以参考知识库中提到的 my.cnf
参数和安全加固步骤。
下面为你介绍在Debian系统上编译安装MySQL 8.0.41源码包的具体步骤:
1. 安装编译依赖
要编译MySQL源码,得先安装必要的依赖包。打开终端并执行以下命令:
bash
sudo apt update
sudo apt install -y build-essential cmake bison libncurses5-dev libssl-dev libreadline-dev libffi-dev
2. 下载MySQL 8.0.41源码包
你可以从MySQL官方网站下载MySQL 8.0.41的源码包,也能使用wget
命令下载:
bash
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.41.tar.gz
3. 解压源码包
下载完成后,解压源码包:
bash
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41
4. 创建构建目录
为了保持源码目录的整洁,你可以创建一个单独的构建目录:
bash
mkdir build
cd build
5. 使用CMake配置编译选项
在构建目录中,使用CMake配置编译选项:
bash
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci
6. 编译和安装
配置完成后,进行编译和安装:
bash
make -j$(nproc)
sudo make install
7. 配置MySQL
创建MySQL用户和组,设置文件权限,并初始化数据目录:
bash
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo chown -R mysql:mysql /usr/local/mysql
sudo mkdir /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
8. 启动MySQL服务
bash
sudo bin/mysqld_safe --user=mysql &
9. 配置环境变量
为了方便使用MySQL命令,你可以将MySQL的二进制目录添加到系统的环境变量中:
bash
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
source ~/.bashrc
10. 安全设置
使用mysql_secure_installation
脚本进行安全设置,如设置root密码、删除匿名用户等:
bash
sudo mysql_secure_installation
按照以上步骤操作,你就能在Debian系统上成功编译安装MySQL 8.0.41源码包。
在Debian上编译安装MySQL 8.0.41源码包的步骤如下:
1. 安装依赖项
确保系统中已安装必要的开发工具和库:
bash
sudo apt-get update
sudo apt-get install -y build-essential cmake libssl-dev libncurses-dev bison flex libaio-dev
2. 下载MySQL源码包
从MySQL官方网站下载MySQL 8.0.41的源码包:
bash
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.41.tar.gz
3. 解压源码包
解压下载的文件:
bash
tar -zxvf mysql-boost-8.0.41.tar.gz
cd mysql-8.0.41
4. 创建MySQL用户和组
创建一个专门用于运行MySQL的用户和组:
bash
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
5. 配置编译选项
使用CMake配置编译参数:
bash
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SSL=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci
6. 编译和安装
编译源码并安装:
bash
make -j$(nproc)
sudo make install
7. 初始化数据库
初始化MySQL数据库并记录生成的临时密码:
bash
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
8. 配置MySQL服务
将MySQL服务配置为系统服务:
bash
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo systemctl enable mysql
9. 启动MySQL服务
启动MySQL服务:
bash
sudo systemctl start mysql
10. 登录并修改密码
使用临时密码登录MySQL并修改密码:
bash
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
11. 配置环境变量(可选)
为了方便使用MySQL命令,可以将MySQL的可执行文件路径添加到环境变量中:
bash
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
完成以上步骤后,MySQL 8.0.41应该已在Debian系统上成功安装并运行。
以下是Debian系统编译安装MySQL 8.0.41源码包的详细步骤:
一、环境准备
-
更新系统
bashsudo apt update && sudo apt upgrade -y
-
安装依赖项
bashsudo apt install -y cmake build-essential libncurses-dev libssl-dev \ libreadline-dev zlib1g-dev libboost-dev pkg-config bison
二、下载源码
-
获取源码包
从MySQL官方仓库下载源码(需注册Oracle账户),或使用wget:
bashwget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.41.tar.gz
-
验证完整性
检查SHA256校验和(需与官网一致):
bashsha256sum mysql-boost-8.0.41.tar.gz
三、编译配置
-
解压源码
bashtar -zxvf mysql-boost-8.0.41.tar.gz cd mysql-8.0.41
-
CMake配置
创建编译目录并配置参数(根据需求调整):
bashmkdir build cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/var/lib/mysql \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_BOOST=../boost \ -DENABLED_LOCAL_INFILE=1 \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci
关键参数说明:
-DCMAKE_INSTALL_PREFIX
:安装路径-DWITH_BOOST
:指定Boost库路径(源码包已包含)-DDEFAULT_CHARSET
:默认字符集
四、编译与安装
-
编译源码
使用多线程加速(根据CPU核心数调整
-j4
):bashmake -j4
-
安装到系统
bashsudo make install
五、系统配置
-
创建MySQL用户/组
bashsudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql
-
初始化数据目录
bashsudo mkdir -p /var/lib/mysql sudo chown -R mysql:mysql /var/lib/mysql /usr/local/mysql/bin/mysqld --initialize --user=mysql
记录初始密码 :输出中的
root@localhost: 临时密码
。 -
配置文件
my.cnf
创建
/etc/my.cnf
并添加基础配置:ini[mysqld] datadir=/var/lib/mysql socket=/var/run/mysqld/mysqld.sock log-error=/var/log/mysql/error.log pid-file=/var/run/mysqld/mysqld.pid
六、服务管理
-
注册为Systemd服务
创建文件
/etc/systemd/system/mysql.service
:ini[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
-
启动服务
bashsudo systemctl daemon-reload sudo systemctl start mysql sudo systemctl enable mysql
七、安全初始化
-
设置root密码
bash/usr/local/mysql/bin/mysql_secure_installation
按提示操作:输入临时密码 → 修改密码 → 删除测试数据库 → 禁用远程root登录等。
八、验证安装
-
检查版本
bash/usr/local/mysql/bin/mysql --version
-
登录数据库
bashmysql -u root -p
常见问题
-
依赖缺失
若CMake报错,根据提示安装缺失的包(如
libtirpc-dev
)。 -
编译失败
- 检查磁盘空间(需至少15GB可用)
- 清理后重试:
make clean && rm CMakeCache.txt
-
权限问题
确保所有MySQL相关目录(如
/var/lib/mysql
)属主为mysql:mysql
。
按此流程操作,可在Debian系统上完成MySQL 8.0.41的源码编译安装。
以下是基于 Debian 系统编译安装 MySQL 8.0.41 源码包的详细指南,整合了多篇文档的核心步骤与注意事项:
一、环境准备与依赖安装
-
更新系统与基础工具
bashsudo apt update && sudo apt upgrade sudo apt install build-essential cmake libncurses5-dev libssl-dev bison git
•
build-essential
包含 GCC 和 make 工具•
bison
用于 SQL 解析,libncurses5-dev
支持终端界面开发 -
安装 Boost 库
• 从 Boost 官网下载 1.77.0 或兼容版本
• 解压后通过 CMake 参数指定路径,例如:
bashcmake . -DWITH_BOOST=/path/to/boost_1_77_0
二、源码编译与安装
-
获取源码包
bashwget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz tar -zxvf mysql-8.0.41.tar.gz cd mysql-8.0.41
-
配置编译选项
bashmkdir build && cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/var/lib/mysql \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_BOOST=/path/to/boost_1_77_0
• 关键参数说明:
◦
CMAKE_INSTALL_PREFIX
:指定安装路径◦
WITH_DEBUG=1
可启用调试模式 -
编译与安装
bashmake -j$(nproc) # 多核并行加速编译 sudo make install
• 编译时间约 30 分钟至数小时,取决于硬件性能
三、数据库初始化与配置
-
创建专用用户与权限设置
bashsudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql sudo chown -R mysql:mysql /usr/local/mysql
-
初始化数据库
bashcd /usr/local/mysql sudo bin/mysqld --initialize --user=mysql
• 记录临时密码:初始化日志末尾会生成临时 root 密码
-
配置文件与启动脚本
bashsudo cp support-files/my-default.cnf /etc/my.cnf sudo cp support-files/mysql.server /etc/init.d/mysqld sudo systemctl daemon-reload
四、服务管理与验证
-
启动 MySQL 服务
bashsudo systemctl start mysqld sudo systemctl enable mysqld
-
登录与修改密码
bashmysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
-
环境变量配置(可选)
将
/usr/local/mysql/bin
添加到PATH
变量:bashecho 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc source ~/.bashrc
五、常见问题解决
-
依赖缺失错误
• 若编译报错提示缺少库文件,重新检查
libssl-dev
、ncurses-devel
等是否安装 -
Boost 路径错误
• 确保 CMake 参数
WITH_BOOST
指向解压后的 Boost 目录 -
权限问题
• 数据库目录需属主为
mysql
用户,避免启动失败
引用说明
• 依赖项安装参考了
• Boost 库配置来自
• 编译参数与初始化步骤整合自
要在Debian上从源码包编译安装MySQL 8.0.41,可以按照以下步骤进行:
步骤一:准备工作
-
更新系统包 :
bashsudo apt update && sudo apt upgrade -y
-
安装必要的依赖包 :
bashsudo apt install -y build-essential cmake libncurses5-dev libssl-dev
步骤二:下载MySQL源码包
-
下载MySQL 8.0.41源码 :
bashwget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
-
解压源码包 :
bashtar -xzvf mysql-8.0.41.tar.gz cd mysql-8.0.41
步骤三:配置编译选项
-
创建构建目录 :
bashmkdir build && cd build
-
运行CMake配置 :
bashcmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_SSL=system \ -DWITH_ZLIB=system
步骤四:编译和安装
-
编译源码 :
bashmake -j $(nproc)
-
安装MySQL :
bashsudo make install
步骤五:初始化和配置MySQL
-
创建MySQL用户和组 :
bashsudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql
-
初始化数据库 :
bashcd /usr/local/mysql sudo bin/mysqld --initialize --user=mysql
-
设置权限 :
bashsudo chown -R mysql:mysql /usr/local/mysql
-
启动MySQL服务 :
bashsudo bin/mysqld_safe --user=mysql &
-
设置开机自启(可选) :
可以参考MySQL官方文档配置systemd服务文件以实现开机自启。
步骤六:设置环境变量(可选)
将MySQL的bin目录添加到PATH中:
bash
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
注意事项
- 编译过程可能需要较长时间,具体取决于系统性能。
- 确保在编译前备份重要数据,以防万一出现问题。
- 根据需要调整CMake配置选项,以满足特定需求。
按照以上步骤,你应该能够在Debian系统上成功编译并安装MySQL 8.0.41。
在Debian系统上编译安装MySQL 8.0.41源码需要以下步骤,请确保全程使用root
权限或配合sudo
执行:
1. 安装依赖
bash
apt update
apt install -y cmake gcc g++ make libncurses-dev libssl-dev libtinfo5 \
libsasl2-dev zlib1g-dev libreadline-dev pkg-config bison libboost-dev
2. 下载源码
bash
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41
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_SSL=system \
-DWITH_BOOST=../boost
关键参数说明:
-DCMAKE_INSTALL_PREFIX
:MySQL安装路径-DMYSQL_DATADIR
:数据库文件存储路径-DWITH_BOOST
:指向源码包内的boost
目录
4. 编译并安装
bash
make -j$(nproc) # 使用多核编译加速
make install
5. 创建MySQL用户和组
bash
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
6. 初始化数据库
bash
cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql
初始化后会生成临时root密码(在终端输出中查找 A temporary password is generated for root@localhost: 临时密码
)。
7. 配置systemd服务
创建文件 /etc/systemd/system/mysql.service
:
ini
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/mysql/my.cnf
Restart=on-failure
[Install]
WantedBy=multi-user.target
8. 启动MySQL
bash
systemctl daemon-reload
systemctl start mysql
systemctl enable mysql
9. 安全配置
bash
/usr/local/mysql/bin/mysql_secure_installation
按提示设置root密码、删除匿名用户、禁止远程root登录等。
10. 配置环境变量
在 /etc/profile
末尾添加:
bash
export PATH=/usr/local/mysql/bin:$PATH
执行 source /etc/profile
生效。
常见问题
- 依赖缺失:如果编译失败,检查错误信息并安装对应依赖。
- Boost路径错误 :确保
-DWITH_BOOST
指向源码内的boost
目录。 - 权限问题 :确保
/var/lib/mysql
和mysql-files
目录权限属于mysql
用户。
通过以上步骤即可完成MySQL 8.0.41的源码编译安装。