CentOS7安裝mysql8.0編譯報錯集合


以下都是我安裝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文件,修改如下圖,然后重新編譯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM