1 Debian12源码安装mysql5.7.44
准备工作
1、更新系统
# apt-get update

2、安装依赖包
# apt-get install build-essential cmake libncurses5-dev libssl-dev libaio1 libaio-dev zlib1g-dev libreadline-dev bison flex libjemalloc-dev libnuma-dev libboost-all-dev

3、手动安装Boost 1.59.0(mysql5.7.44特定版本)
下载boost1.59源码包
# wget https://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

编译安装
#yum install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel -y
#tar xf boost_1_59_0.tar.gz

#cd boost_1_59_0

#./bootstrap.sh

#./b2 -j4

#./b2 install

下载 MySQL 源码
从 MySQL 官方网站下载 MySQL 5.7.44 的源码包。
#wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz

#tar xzf mysql-5.7.44.tar.gz

#cd mysql-5.7.44

配置与编译
在 MySQL 源码目录中,执行 CMake 配置并开始编译。
#mkdir build
#cd build

# cmake .. \
-DWITH_BOOST=/root/boost_1_59_0 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_DOCDIR=share/doc/mysql-5.7.44 \
-DINSTALL_MANDIR=/usr/local/mysql/share/man \
-DINSTALL_INFODIR=/usr/local/mysql/share/info \
-DINSTALL_SBINDIR=/usr/local/mysql/bin \
-DINSTALL_SCRIPTDIR=/usr/local/mysql/bin \
-DINSTALL_SUPPORTFILESDIR=/usr/local/mysql/share/mysql \
-DINSTALL_PLUGINDIR=/usr/local/mysql/lib/plugin \
-DINSTALL_EMBEDDED_INCLUDEDIR=/usr/local/mysql/include/mysql-embedded \
-DINSTALL_EMBEDDED_LIBDIR_REL=lib/mysql-embedded \
-DINSTALL_EMBEDDED_BINDIR=/usr/local/mysql/bin \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_DEBUG=0 \
-DWITH_BOOST=/usr \
-DWITH_UNIT_TESTS=0 \
-DWITH_NUMA=0 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READ_ONLY_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_CMAKE=1

#make -j$(nproc)

安装
将编译好的 MySQL 安装到系统中。
# make install

创建 MySQL 用户和组
#groupadd mysql
#useradd -r -g mysql mysql
初始化数据库
创建my.cnf文件
#cp /etc/mysql/my.cnf.fallback /etc/mysql/my.cnf

初始化 MySQL 数据库,并生成随机的初始 root 密码。
# chown -R mysql:mysql /usr/local/mysql
# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql
这里使用了 --initialize-insecure 来避免生成随机密码,以便后续手动设置密码。如果你希望使用随机生成的初始密码,可以使用 --initialize 命令。

创建 MySQL 服务启动文件
创建一个简单的 systemd 服务文件来管理 MySQL 服务。
#vi /etc/systemd/system/mysql.service
在文件中添加以下内容:
[Unit]
Description=MySQL Community Server
After=network.target
[Service]
Type=forking
User=mysql
Group=mysql
PIDFile=/usr/local/mysql/tmp/mysql.pid
ExecStart=/usr/local/mysql/bin/mysqld
ExecStop=/usr/local/mysql/bin/mysqladmin shutdown
TimeoutStopSec=60s
RestartSec=1s
Restart=always
[Install]
WantedBy=multi-user.target

保存并退出。
配置开启启动服务,并启动服务
#systemctl daemon-reload
#systemctl enable mysql
#systemctl restart mysql

检查 MySQL 服务状态
# systemctl status mysql

添加 MySQL 客户端到 PATH
#echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
#source ~/.bashrc

登录 MySQL 并设置 root 密码
# mysql -u root

设置 root 密码:
#ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
#FLUSH PRIVILEGES;
#EXIT;

安装完成!

