以下都是我安裝mysql8.0遇到的一些報錯和解決方法
1、does not appear to contain CMakeLists.txt.
原因:mysql下載的源碼包不對
解決方法:下載正確的mysql源碼包。
2、配置報錯:Please install the appropriate openssl developer package.
解決方法:安裝openssl-devel
yum -y install openssl-devel
3、配置報錯:Could NOT find Curses
解決方法:安裝ncurses-devel
yum -y install ncurses-devel
4、編譯報錯:Please do not build in-source. Out-of source builds are highly
原因:是它建議你不要構建源代碼。
解決辦法:在配置的時候加入字段:-DFORCE_INSOURCE_BUILD=1
5、配置報錯:The C compiler identification is unknown
解決辦法:做一個gcc的軟鏈接。
ln -s /usr/local/gcc/bin/gcc /usr/bin/cc
6、編譯報錯:/usr/lib/libstdc++.so.6: version `CXXABI_1.3.9' not found
因為libstdc++.so.6的庫是使用的以前的老庫。
解決辦法:修改軟鏈接
find / -name libstdc++.so.6
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6_old
ln -s /usr/local/gcc/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6
7、編譯報錯:'SYS_gettid' has not been declared in this scope
解決方法:在該文件上添加一個頭文件。
vim /usr/local/src/mysql-8.0.16/storage/innobase/buf/buf0buf.cc #在第一行添加 #include "sys/syscall.h"
8、編譯報錯:‘os_compare_and_swap_thread_id’ Has not been declared in this scope
解決辦法:修改報錯文件內容
vim /usr/local/src/mysql-8.0.16/storage/innobase/lock/lock0lock.cc #將 “os_compare_and_swap_thread_id” 修改為 os_compare_and_swap_lint
9、編譯報錯:/usr/bin/ar: ../../archive_output_directory/libz.a
解決方法:重新配置編譯
make clean
cmake .....(你的配置參數)
make
10、編譯報錯:_DIAGASSERT、libedit_fgetln、__arraycount、libedit_fgetln an undefined reference
解決方法:在各文件里加入sys.h頭文件
#在文件中加入 #include <sys.h>
11、mysql登錄報錯:Segmentation fault
解決辦法:找到源碼中terminal.c文件,修改如下圖,然后重新編譯。