自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL Shell 8.0.32 for GreatSQL編譯安裝

數(shù)據(jù)庫(kù) MySQL
折騰完這些,是不是感覺(jué)還是有點(diǎn)麻煩?沒(méi)關(guān)系,我已經(jīng)把這些工作都封裝到docker鏡像中了,包括Dockerfile以及自動(dòng)編譯腳本。下面簡(jiǎn)單介紹下怎么用。

0. 寫(xiě)在前面

GreatSQL 8.0.32-24已發(fā)布,配套的MySQL Shell也需要跟著升級(jí)一波,MySQL Shell版本從8.0.25升級(jí)到8.0.32后,也引入了一些不錯(cuò)的新特性。

下面正式開(kāi)始MySQL Shell編譯工作。

1. 準(zhǔn)備工作

1.1 準(zhǔn)備Docker環(huán)境

參考編譯環(huán)境要求 greatsql_docker_build(https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/greatsql_shell_docker_build/Dockerfile) ,構(gòu)建好一個(gè)Docker鏡像環(huán)境,基本上照著做就行,這里不贅述。

1.2 下載源碼包

先下載準(zhǔn)備好下列幾個(gè)源碼包:

  • antlr4-cpp-runtime-4.10-source.zip, https://github.com/antlr/website-antlr4/blob/gh-pages/download/antlr4-cpp-runtime-4.10-source.zip
  • boost_1_77_0.tar.gz, https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz
  • mysql-8.0.32.tar.gz, https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32.tar.gz
  • mysql-shell-8.0.32-src.tar.gz, https://downloads.mysql.com/archives/get/p/43/file/mysql-shell-8.0.32-src.tar.gz
  • patchelf-0.14.5.tar.gz, https://github.com/NixOS/patchelf/releases/download/0.14.5/patchelf-0.14.5.tar.gz
  • protobuf-all-3.19.4.tar.gz, https://github.com/protocolbuffers/protobuf/releases/download/v3.19.4/protobuf-all-3.19.4.tar.gz
  • rpcsvc-proto-1.4.tar.gz, https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz

下載完后都放在 /opt/ 目錄下,并解壓縮。

1.3 修改MySQL Shell源碼包

打開(kāi)鏈接:https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/greatsql_shell_docker_build/mysqlsh-for-greatsql-8.0.32.patch,下載GreatSQL補(bǔ)丁包文件 mysqlsh-for-greatsql-8.0.32.patch。

為了讓MySQL Shell支持GreatSQL仲裁節(jié)點(diǎn)(ARBITRATOR)特性,需要打上補(bǔ)丁包:

$ cd /opt/mysql-shell-8.0.32-src
$ patch -p1 -f < /opt/mysqlsh-for-greatsql-8.0.32.patch

patching file mysqlshdk/libs/mysql/group_replication.cc
patching file mysqlshdk/libs/mysql/group_replication.h

1.4 編譯相關(guān)軟件包

1.43.1 antlr4-4.10

編譯antlr4需要依賴 uuid 庫(kù),先安裝上:

$ yum install -y libuuid libuuid-devel uuid

接著開(kāi)始編譯antlr4:

$ cd /opt/antlr4-4.10/runtime/Cpp/
$ mkdir bld && cd bld
$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/antlr4 && make -j16 && make -j16 install

1.4.2 patchelf-0.14.5

$ cd /opt/patchelf-0.14.5
$ ./bootstrap.sh && ./configure && make -j16 && make -j16 install

1.4.3 protobuf-3.19.4

$ cd /opt/protobuf-3.19.4
$ ./configure && make -j16 && make -j16 install

1.4.4 rpcsvc-proto-1.4

$ cd /opt/rpcsvc-proto-1.4
$ ./configure && make -j16 && make -j16 install

2. 準(zhǔn)備編譯MySQL Shell

2.1 編譯MySQL 8.0.32

在MySQL 8.0.32源碼目錄中,編譯生成MySQL客戶端相關(guān)依賴庫(kù),這是編譯MySQL Shell之前要先做的事:

$ cd /opt/mysql-8.0.32
$ mkdir bld && cd bld
$ cmake .. -DBOOST_INCLUDE_DIR=/opt/boost_1_77_0 \
-DLOCAL_BOOST_DIR=/opt/boost_1_77_0 \
-DWITH_SSL=system && \
cmake --build . --target mysqlclient -- -j16; \
cmake --build . --target mysqlxclient -- -j16

P.S,在 cmake 后面加上 -- -j16 的作用是多線程并行編譯,這樣速度更快,不加的話只能單線程編譯,速度比較慢。

2.2 編譯MySQL Shell 8.0.32

編譯完成后,切換到MySQL Shell源碼目錄下,準(zhǔn)備繼續(xù)編譯:

$ cd /opt/mysql-shell-8.0.32-src/
$ mkdir bld && cd bld
$ cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/greatsql-shell-8.0.32-24-Linux-glibc2.28-x86_64 \
-DMYSQL_SOURCE_DIR=/opt/mysql-8.0.32 \
-DMYSQL_BUILD_DIR=/opt/mysql-8.0.32/bld/ \
-DHAVE_PYTHON=1 \
-DWITH_PROTOBUF=bundled \
-DBUILD_SOURCE_PACKAGE=0 \
-DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \
&& make && make install

測(cè)試提示錯(cuò)誤信息:

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
  (Required is at least version "3.8")

這表示需要先安裝Python 3.8相關(guān)軟件包,因?yàn)檫€需要libssh,就一并安裝:

$ yum install -y python38 python38-devel python38-libs python38-pyyaml libssh libssh-config libssh-devel

再次編譯,并指定Python 3.8的相關(guān)路徑:

$ cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/greatsql-shell-8.0.32-24-Linux-glibc2.28-x86_64 \
-DMYSQL_SOURCE_DIR=/opt/mysql-8.0.32 \
-DMYSQL_BUILD_DIR=/opt/mysql-8.0.32/bld/ \
-DHAVE_PYTHON=1 \
-DWITH_PROTOBUF=bundled \
-DBUILD_SOURCE_PACKAGE=0 \
-DBUNDLED_ANTLR_DIR=/usr/local/antlr4/ \
-DPYTHON_LIBRARIES=/usr/lib64/python3.8 -DPYTHON_INCLUDE_DIRS=/usr/include/python3.8/ \
&& make -j16 && make -j16 install

編譯完成后,會(huì)把二進(jìn)制文件安裝到  /usr/local/greatsql-shell-8.0.32-24-Linux-glibc2.28-x86_64 目錄下。

2.3 運(yùn)行測(cè)試

運(yùn)行 mysqlsh,看是否能直接跑起來(lái):

$ cd /usr/local/greatsql-shell-8.0.32-24-Linux-glibc2.28-x86_64
$ ./bin/mysqlsh
./bin/mysqlsh: error while loading shared libraries: libprotobuf.so.30: cannot open shared object file: No such file or directory

提示無(wú)法找到動(dòng)態(tài)庫(kù)文件 libprotobuf.so.30。實(shí)際上這個(gè)動(dòng)態(tài)庫(kù)文件在 /usr/local/lib 目錄下,只需將其拷貝一份到MySQL Shell的lib目錄下即可:

$ cp /usr/local/lib/libprotobuf.so.30 lib/mysqlsh/
$ ldd bin/mysqlsh | grep libprotobuf.so
        libprotobuf.so.30 => /usr/local/greatsql-shell-8.0.32-24-Linux-glibc2.28-x86_64/bin/../lib/mysqlsh/libprotobuf.so.30 (0x00007f60660a2000)

這次找到依賴庫(kù)文件了。

運(yùn)行 mysqlsh,看能否正常使用:

$ ./bin/mysqlsh
MySQL Shell 8.0.32
...
Type '\help' or '\?' for help; '\quit' to exit.
WARNING: Found errors loading plugins, for more details look at the log at: /root/.mysqlsh/mysqlsh.log
 MySQL  Py > \q
Bye!

看到有 WARNING 提示,檢查日志文件 /root/.mysqlsh/mysqlsh.log,看到有了類似下面的內(nèi)容:

ModuleNotFoundError: No module named 'certifi'

只需用pip安裝相應(yīng)模塊即可:

$ pip3.8 install --user certifi

好了,開(kāi)始感受GreatSQL 8.0.32-24新版本特性,以及MGR仲裁節(jié)點(diǎn)的魅力吧 O(∩_∩)O哈哈~

3. 寫(xiě)在最后

折騰完這些,是不是感覺(jué)還是有點(diǎn)麻煩?沒(méi)關(guān)系,我已經(jīng)把這些工作都封裝到docker鏡像中了,包括Dockerfile以及自動(dòng)編譯腳本。下面簡(jiǎn)單介紹下怎么用。

自行下載MySQL和MySQL Shell,以及boost源碼包,上面已經(jīng)給過(guò)下載地址了。

下載完后都放在 /opt/ 目錄下,并解壓縮。

下載 MySQL Shell for GreatSQL編譯輔助包(https://product.greatdb.com/GreatSQL/greatsql-shell-requirement-pkg.tar.xz),解壓縮到 /opt/ 目錄下。

執(zhí)行下面命令構(gòu)建docker鏡像:

$ cd /opt/greatsql_shell_docker_build
$ sh ./greatsql-shell-docker-build.sh /opt/mysql-8.0.32/ /opt/mysql-shell-8.0.32-src/ /opt/boost_1_77_0

說(shuō)明: 上述命令中,腳本后面跟著三個(gè)目錄參數(shù),分別對(duì)應(yīng)MySQL、MySQL Shell、boost源碼全路徑。

之后就可以自動(dòng)完成MySQL Shell for GreatSQL編譯docker容器環(huán)境,啟動(dòng)并進(jìn)入該容器:

$ docker images | grep -i greatsql_shell
greatsql_shell_build_env   latest    4db9dcd3c563   About an hour ago   4.1GB

$ docker run -d \
-v /opt/mysql-8.0.32:/opt/mysql-8.0.32 \
-v /opt/mysql-shell-8.0.32-src:/opt/mysql-shell-8.0.32-src \
-v /opt/boost_1_77_0:/opt/boost_1_77_0 \
--name greatsql_shell_build_env greatsql_shell_build_env

$ docker exec -it greatsql_shell_build_env bash

進(jìn)入容器后,編輯 /opt/greatsql-shell-automake.sh 腳本,確認(rèn)其中文件目錄是否都正確,確認(rèn)都沒(méi)問(wèn)題的話,就可以執(zhí)行該腳本開(kāi)始編譯源碼了。

# 加載環(huán)境變量,并切換到高版本gcc編譯環(huán)境
[root@a5cebc4c0276 opt]# cd /opt
[root@a5cebc4c0276 opt]# source ~/.bash_profile
[root@a5cebc4c0276 opt]# ls -la
total 136
drwxr-xr-x  1 root root    110 Jul 11 08:56 .
drwxr-xr-x  1 root root     62 Jul 11 08:08 ..
drwxr-xr-x  8 root root   4096 Aug  5  2021 boost_1_77_0
-rwxr-xr-x  1 root root    910 Jul 11 08:15 greatsql-shell-automake.sh
drwxr-xr-x 32 7161 31415 65536 Jul 11 08:12 mysql-8.0.32
drwxr-xr-x 18 root root  65536 Jul 11 08:15 mysql-shell-8.0.32-src
drwxr-xr-x  3 root root     28 Jul 11 07:27 rh

# 開(kāi)始自動(dòng)編譯
[root@a5cebc4c0276 opt]# sh ./greatsql-shell-automake.sh

編譯結(jié)束后,試著運(yùn)行 mysqlsh 客戶端,確認(rèn)可用:

/usr/local/greatsql-mysql-shell-8.0.32-centos-glibc2.28-x86_64/bin/mysqlsh
MySQL Shell 8.0.32

Copyright (c) 2016, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type '\help' or '\?' for help; '\quit' to exit.
 MySQL  Py >

看起來(lái)挺順利的哈 :)

責(zé)任編輯:武曉燕 來(lái)源: GreatSQL社區(qū)
相關(guān)推薦

2024-01-31 09:55:53

2023-08-18 14:39:02

2023-08-28 08:24:07

myloaderMySQLGreatSQL

2011-03-09 14:27:25

2010-01-07 16:47:01

2010-01-13 15:07:51

2022-09-12 08:01:21

GreatSQLMySQL性能

2010-02-06 14:19:06

Linux MySQL

2010-04-01 13:37:24

CentOS系統(tǒng)5

2021-06-08 07:49:29

MySQL數(shù)據(jù)庫(kù)索引

2010-02-03 09:26:52

Linux Mysql

2022-11-09 08:06:15

GreatSQLMGR模式

2024-07-12 12:43:51

2023-06-08 08:17:32

GreatSQLMGREL7

2023-06-28 10:24:04

2010-02-22 09:33:37

Ubuntu MySQ

2011-03-29 14:44:24

LAMP安裝

2011-01-19 17:13:44

Sylpheed

2011-03-03 15:54:54

Vsftpd安裝編譯

2022-06-02 09:14:14

GNOME源碼編譯Linux 發(fā)行版
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)