编译调试mysql

【参考】

https://cloud.tencent.com/developer/article/1799089

centos7.9

mysql8.0.22

gcc编译大概5个小时

【解决环境问题】

1)修改这几处代码

 2)替换libstdc++.so.6.0.28

strings /usr/lib64/libstdc++.so.6|grep GLIBCXX
find / -name "libstdc++.so*"
cp /home/mysql/gcc-10.2.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.28 /usr/lib64/
cd /usr/lib64/
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.28 libstdc++.so.6

【编译参数】

cmake . \
-DCMAKE_INSTALL_PREFIX=/install/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DFORCE_INSOURCE_BUILD=1 \
-DCMAKE_CXX_COMPILER=/usr/bin/g++ \
-DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=1 \
-DMYSQL_TCP_PORT=3306 \
-DCMAKE_BUILD_TYPE=Debug \
-DWITH_DEBUG=1 \
-DDOWNLOAD_BOOST=0 \
-DWITH_BOOST=/install/mysql-8.0.22/boost \
-DFORCE_INSOURCE_BUILD=1 \
-DCMAKE_CXX_FLAGS_DEBUG="-O0 -g3 -gdwarf-2"
-O0 -g3 -gdwarf-2解决可以看宏和编译优化的问题
优化前
optimized,而且函数跳转有点乱
优化后

【cmake配置】

1)参数详见CMakeLists.txt

2)make VERBOSE=1调试

3)日志/install/mysql-8.0.22/CMakeFiles

CMakeError.log和CMakeOutput.log

posted @ 2022-03-20 10:48  stupidstan2019  阅读(127)  评论(0编辑  收藏  举报