点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
背 景
由于审计插件版本不再更新,使用旧的审计插件在新版本的mysql上无法正常安装,尝试使用新版本的MySQL源码包重新编译安装审计插件。

本实验以8.0.33为例。
编译安装准备工作
2.1 源码包获取
审计插件源码包:
https://github.com/trellix-enterprise/mysql-audit
mysql源码包:
https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.33.tar.gz
需要GCC10以上的版本:

2.2 软件安装
编译安装GCC10以上的版本还需要GMP4.2+,MPFR3.1.0+,MPC 0.8.0+,这里全部安装最新版本。
软件下载地址:
http://ftp.gnu.org/gnu/ 直接全部下载最新的即可。
安装的顺序依次为:gmp,mpfr, mpc,最后安装gcc。

1)安装GMP
tar -xvf gmp-6.3.0.tar.xz
cd gmp-6.3.0
./configure --prefix=/home/mysql/software/source/gmp
Make && make install复制
2)安装MPFR
tar -xvzf mpfr-4.2.1.tar.gz
cd mpfr-4.2.1
./configure --prefix=/home/mysql/software/source/mpfr --with-gmp=/home/mysql/software/source/gmp
make && make install复制
3)安装mpc
tar -xvzf mpc-1.3.1.tar.gz
cd mpc-1.3.1
./configure --prefix=/home/mysql/software/source/mpc --with-gmp=/home/mysql/software/source/gmp --with-mpfr=/home/mysql/software/source/mpfr
make && make install复制
4)安装GCC
tar xvzf gcc-13.2.0.tar.gz
cd gcc-13.2.0
./configure --prefix=/home/mysql/software/source/gcc --disable-multilib --enable-threads=posix --disable-checking --enable--long-long --enable-languages=c,c++ --with-gmp=/home/mysql/software/source/gmp --with-mpfr=/home/mysql/software/source/mpfr --with-mpc=/home/mysql/software/source/mpc
make && make install复制
安装时间较久。
5)升级glibc库
参考: strings lib64/libstdc++.so.6 | grep GLIBC
切换root:
strings lib64/libstdc++.so.6 | grep GLIBC
find / -name "libstdc++.so*"
cp /home/mysql/software/source/gcc-13.2.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.32 /lib64/
rm lib64/libstdc++.so.6
ln –s lib64/libstdc++.so.6.0.32 libstdc++.so.6
strings lib64/libstdc++.so.6 | grep GLIBC复制
正式步骤
参考:
https://github.com/zhaopinglu/mysql-audit/blob/master/Note_for_MySQL8.0.33.md#a-quick-note-on-bulding-mysql-audit-for-mysql-8033
techblog.kerya.net | 521: Web server is down
准备:
yum install -y glibc-devel libtirpc-devel rpcgen libtool
Extract mysql 8.0.33 source code into mysql-audit code folder:
cd mysql-audit-1.1.13
tar xvzf ../mysql-boost-8.0.37.tar.gz
Build MySQL 8.0.33
cd mysql-8.0.37/
cmake3 -DFORCE_INSOURCE_BUILD=1 -DWITH_BOOST=boost -DCMAKE_C_COMPILER=/home/mysql/software/source/gcc/bin/gcc -DCMAKE_CXX_COMPILER=/home/mysql/software/source/gcc/bin/g++
make -j`nproc --all` -C libservices
make -j`nproc --all` -C include
Modify mysql-audit source code
cd mysql-audit-1.1.13
perl -pi -e 's/TABLE_LIST/Table_ref/g'`grep -rlw TABLE_LIST include/ src/ offset-extract/`
Replace: "my_charset_utf8_general_ci" To "my_charset_utf8mb3_general_ci" And "my_charset_utf8_bin" To "my_charset_utf8mb3_bin"
src/audit_handler.cc:
836-#else
837- /*
838- TODO: Migrate the data itself to UTF8MB4,
839- this is still UTF8MB3 printed in a UTF8MB4 column.
840- */
841- const char *well_formed_error_pos = NULL, *cannot_convert_error_pos = NULL,
842- *from_end_pos = NULL;
843- copy_length = well_formed_copy_nchars(
844: //&my_charset_utf8_bin
845- &my_charset_utf8mb3_bin
1090-#if defined(MARIADB_BASE_VERSION) && MYSQL_VERSION_ID >= 100504
1091- &my_charset_utf8mb3_general_ci,
1092-#else
1093: //&my_charset_utf8_general_ci,
1094- &my_charset_utf8mb3_general_ci,
Build mysql-audit
cd mysql-audit-1.1.13
chmod +x bootstrap.sh
./bootstrap.sh
CXX='/home/mysql/software/source/gcc/bin/gcc -static-libgcc' CC='/home/mysql/software/source/gcc/bin/gcc -static-libgcc' ./configure --with-mysql=mysql-8.0.37 --with-mysql-libservices=mysql-8.0.37/libservices/libmysqlservices.a
perl -pi -e 's/automake-1.15/automake/g' pcre/Makefile
perl -pi -e 's/aclocal-1.15/aclocal/g' pcre/Makefile
alternatives --config python
make -j`nproc --all`
Install
cp src/.lib/libaudit_plugin.* /usr/lib64/mysql/plugin/.
chmod +x /usr/lib64/mysql/plugin/libaudit*复制


本文作者:若 晗(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1254次阅读
2025-03-13 11:40:53
MySQL8.0统计信息总结
闫建(Rock Yan)
470次阅读
2025-03-17 16:04:03
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
448次阅读
2025-03-13 14:38:19
Ogg23ai高手必看-MySQL Innodb Cluster跟oracle的亲密接触
曹海峰
441次阅读
2025-03-04 21:56:13
SQL优化 - explain查看SQL执行计划(一)
金同学
382次阅读
2025-03-13 16:04:22
MySQL突然崩溃?教你用gdb解剖core文件,快速锁定“元凶”!
szrsu
329次阅读
2025-03-13 00:29:43
MySQL生产实战优化(利用Index skip scan优化性能提升257倍)
chengang
320次阅读
2025-03-17 10:36:40
一键装库脚本3分钟极速部署,传统耗时砍掉95%!
IT邦德
229次阅读
2025-03-10 07:58:44
MySQL8.0直方图功能简介
Rock Yan
216次阅读
2025-03-21 15:30:53
MySQL 有没有类似 Oracle 的索引监控功能?
JiekeXu
196次阅读
2025-03-19 23:43:22