mysql8 安裝


准備工作:

首先安裝這些依賴

yum install -y flex

yum install gcc gcc-c++ cmake  ncurses ncurses-devel bison libaio-devel libncurses-devel libopenssl-devel zlib-devel autoconf perl per-devel openssl  gcc-g77 make - y

升級make 

wget https://kojipkgs.fedoraproject.org//packages/make/4.2.1/14.fc31/src/make-4.2.1-14.fc31.src.rpm

./configure --prefix=/usr

make  make  install 

 

下載 cmake 3.5 以上版本:

wget https://cmake.org/files/v3.6/cmake-3.6.3.tar.gz

解壓后 執行:

./bootstrap

gmake  && gmake --install

 

 

升級gcc:

https://kojipkgs.fedoraproject.org//packages/gcc/7.3.1/1.fc26/src/gcc-7.3.1-1.fc26.src.rpm

進入gcc目錄,安裝gcc依賴庫

cd gcc  && ./contrib/download_prerequisites

執行命令后它會自動下載mpfr、gmp、mpc isl這4個庫

編譯安裝 gcc

 

升級 openssl

wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz

解壓后安裝:

mkdir build &&cd  build

../configure

make

make install

下載mysql

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.16.tar.gz

編譯安裝:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data/ \

-DSYSCONFDIR=\etc\mysql\

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DMYSQL_TCP_PORT=3306 \

-DENABLED_LOCAL_INFILE=1 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8mb4 \

-DWITH_BOOST=/home/mysql-8/mysql-8.0.16/boost \

-DFORCE_INSOURCE_BUILD=1

報錯:

【CMake Error at /usr/local/share/cmake-3.6/Modules/CMakeTestCCompiler.cmake:61 (message):】

【cc: error trying to exec 'cc1': execvp: No such file or directory】

修改CMakeCache.txt文件中的

CMAKE_CXX_COMPILER:FILEPATH=/usr/local/bin/c++

CMAKE_C_COMPILER:FILEPATH=/usr/local/bin/gcc

報錯:

【CMake Error at CMakeLists.txt:301 (MESSAGE):】

增加參數: -DFORCE_INSOURCE_BUILD=1

make

報錯:

【../runtime_output_directory/uca9dump: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ../runtime_output_directory/uca9dump)

make[2]: *** [strings/CMakeFiles/strings.dir/build.make:64: strings/uca900_zh_tbls.cc] Error 1

make[1]: *** [CMakeFiles/Makefile2:1022: strings/CMakeFiles/strings.dir/all] Error 2】

解決:

查看   /lib64/libstdc++.so.6 版本

strings /lib64/libstdc++.so.6 | grep CXXABI

CXXABI_1.3

CXXABI_1.3.1

CXXABI_1.3.2

CXXABI_1.3.3

CXXABI_1.3.4

CXXABI_1.3.5

CXXABI_1.3.6

CXXABI_1.3.7

CXXABI_TM_1

版本不符合要求 , 由於gcc安裝在/usr/bin/local 中,故執行如下操作 :

ln -s /usr/local/lib64/libstdc++.so.6 /lib64/libstdc++.so.6

ln -s /usr/local/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6

報錯:

【/home/mysql-8/mysql-8.0.16/storage/innobase/include/os0atomic.ic:194:2: error: #error "Unsupported platform"

#error "Unsupported platform"】問題解決:

vim /home/mysql-8/mysql-8.0.16/storage/innobase/include/os0atomic.h

1 由於沒有定義arm平台的宏定義,增加參數如下:

#else

#define HAVE_ATOMIC_BUILTINS


 

 

 

2 vim /home/mysql-8/mysql-8.0.16/storage/innobase/include/os0atomic.ic
在os0atomic.ic中,把#elif defined(IB_STRONG_MEMORY_MODEL)改為#elif defined(HAVE_ATOMIC_BUILTINS)

 

報錯:

【/home/mysql-8/mysql-8.0.16/storage/innobase/buf/buf0buf.cc:1220:44: error: 'SYS_gettid' was not declared in this scope

  setpriority(PRIO_PROCESS, (pid_t)syscall(SYS_gettid), -20);

】問題解決

vi /home/mysql-8/mysql-8.0.16/storage/innobase/buf/buf0buf.cc

將 SYS_gettid 改為 186

 

報錯:

【/home/mysql-8/mysql-8.0.16/storage/innobase/lock/lock0lock.cc:1571:9: error: 'os_compare_and_swap_thread_id' was not declared in this scope

  cas = os_compare_and_swap_thread_id(&trx->killed_by, 0, thread_id);

】問題解決:

os_compare_and_swap_thread_id() 這個函數沒有聲明.

在os0atomic.h頭文件中的第250行左右找到os_compare_and_swap_thread_id()這個函數的實現

 

 

修改:

# ifdef HAVE_ATOMIC_BUILTINS //HAVE_IB_ATOMIC_PTHREAD_T_GCC

#if defined(HAVE_ATOMIC_BUILTINS) //defined(HAVE_GCC_SYNC_BUILTINS)


 

make && make install 

完成安裝:


 

 

 

【初始化數據庫時 報錯:

2019-08-28T01:40:06.114368Z 0 [ERROR] [MY-010936] [Server] COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4'】

 

創建  /et/my.cnf

vim  /etc/my.cnf

[client]

default-character-set = utf8mb4

[mysql]

default-character-set = utf8mb4

[mysqld]

skip-grant-tables

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect='SET NAMES utf8mb4

 

初始化mysql 

bin/mysqld --initialize --user=mysql

 

 

 


初始登錄密碼如高亮處

啟動:

bin/mysqld_safe --user=mysql &

登錄 :

/usr/local/bin/mysql -u root -p

 


 

 

修改密碼:

alter user user() identified by ‘123456’

 


免責聲明!

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



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