如下都是我安裝mysql8.0遇到的一些報錯和解決方法mysql
一、does not appear to contain CMakeLists.txt.c++
緣由:mysql下載的源碼包不對sql
解決方法:下載正確的mysql源碼包。vim
二、配置報錯:Please install the appropriate openssl developer package.app
解決方法:安裝openssl-develide
yum -y install openssl-devel
三、配置報錯:Could NOT find Cursesui
解決方法:安裝ncurses-develthis
yum -y install ncurses-devel
四、編譯報錯:Please do not build in-source. Out-of source builds are highlyspa
緣由:是它建議你不要構建源代碼。3d
解決辦法:在配置的時候加入字段:-DFORCE_INSOURCE_BUILD=1
五、配置報錯:The C compiler identification is unknown
解決辦法:作一個gcc的軟連接。
ln -s /usr/local/gcc/bin/gcc /usr/bin/cc
六、編譯報錯:/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
七、編譯報錯:'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"
八、編譯報錯:‘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
九、編譯報錯:/usr/bin/ar: ../../archive_output_directory/libz.a
解決方法:從新配置編譯
make clean
cmake .....(你的配置參數)
make
十、編譯報錯:_DIAGASSERT、libedit_fgetln、__arraycount、libedit_fgetln an undefined reference
解決方法:在各文件里加入sys.h頭文件
#在文件中加入 #include <sys.h>
十一、mysql登陸報錯:Segmentation fault
解決辦法:找到源碼中terminal.c文件,修改以下圖,而後從新編譯。