编译安装-MySQL-8.0.32
环境说明
我的开发环境是 Centos-9.0 版本的,最近 MySQL-8.0.32 发布了,打算用它来调试。详细的信息如下,由于平时还要做一些调试,所以我这里直接编译安装一个 DEBUG 的版本。这个版本包含更多的日志。
system: CentOS Stream release 9
g++: 11.3.1 20220421 (Red Hat 11.3.1-2
cmake: cmake version 3.23.1
第一步下载安装包
cd /tmp/
wget https://codeload.github.com/mysql/mysql-server/zip/refs/tags/mysql-8.0.32
unzip mysql-server-mysql-8.0.32.zip
mv mysql-server-mysql-8.0.32 /data/repos/
第二步安装依赖
我验证了一下,我的环境下要安装 libtirpc-devel ,rpcgen 这两个依赖。项目 libtirpc-devel 由于 CRB 这个 yum 仓库总是启用失败导致安装失败,所以我直接从网上下载了对应的版本来安装。
wget http://mirror.stream.centos.org/9-stream/CRB/x86_64/os/Packages/libtirpc-devel-1.3.2-1.el9.x86_64.rpm
yum install libtirpc-devel-1.3.2-1.el9.x86_64.rpm
yum install rpcgen
第三步编译安装
用 cmake 编译
cd /data/repos/mysql-server-mysql-8.0.32
mkdir build
cd build
cmake .. -DWITH_DEBUG=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/data/repos/mysql-server-mysql-8.0.32/boost \
-DWITH_ARCHIVE_STORAGE_ENGINE=0 -DWITH_EXAMPLE_STORAGE_ENGINE=0 -DWITH_FEDERATED_STORAGE_ENGINE=0 \
-DWITH_INNODB_MEMCACHED=OFF -DWITH_ROUTER=OFF -DWITH_UNIT_TESTS=OFF -DWITH_NDB=OFF \
-DDISABLE_PSI_COND=OFF -DDISABLE_PSI_DATA_LOCK=OFF -DDISABLE_PSI_ERROR=OFF -DDISABLE_PSI_FILE=OFF \
-DDISABLE_PSI_IDLE=OFF -DDISABLE_PSI_MEMORY=OFF -DDISABLE_PSI_METADATA=OFF -DDISABLE_PSI_MUTEX=OFF \
-DDISABLE_PSI_PS=OFF -DDISABLE_PSI_RWLOCK=OFF -DDISABLE_PSI_SOCKET=OFF -DDISABLE_PSI_SP=OFF \
-DDISABLE_PSI_STAGE=OFF -DDISABLE_PSI_STATEMENT=OFF -DDISABLE_PSI_STATEMENT_DIGEST=OFF \
-DDISABLE_PSI_TABLE=OFF -DDISABLE_PSI_THREAD=OFF -DDISABLE_PSI_TRANSACTION=OFF \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-8.0.32
cmake --build .
cmake --install .
检查 DEBUG 版本是否已经编译好了。
/usr/local/mysql-8.0.32/bin/mysqld --version
/usr/local/mysql-8.0.32/bin/mysqld Ver 8.0.32-debug for Linux on x86_64 (Source distribution)
看到有 debug 的字样了说明成功了。
配置与启动实例
创建用户、目录、初始化数据。
useradd mysql
cd /usr/local/mysql-8.0.32/
mkdir data
mysql 配置文件的内容如下
[mysqld]
basedir=/usr/local/mysql-8.0.32/
datadir=/usr/local/mysql-8.0.32/data
port=2233
user=mysql
debug=d,info,error,query,general,where:O,/tmp/mysqld.trace
启动
/usr/local/mysql-8.0.32/bin/mysqld --defaults-file=/usr/local/mysql-8.0.32/my.cnf &
检查
DEBUG 版本的日志非常的详细,8.0.32 版本一个简单的启动就有 1.2MB 的日志文件了。
ll /tmp/mysqld.trace
-rw-r----- 1 root root 1241599 Jan 19 19:11 /tmp/mysqld.trace