MySQL运维实战(1.3)安装部署:源码编译安装
生活随笔
收集整理的這篇文章主要介紹了
MySQL运维实战(1.3)安装部署:源码编译安装
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
作者:俊達(dá)
引言
在大多數(shù)情況下,我們不需要自己編譯MySQL源碼,因為編譯的MySQL和二進(jìn)制包的內(nèi)容基本一致。然而,有些特殊情況可能需要我們采用源碼編譯的方式安裝MySQL:
- 安裝非標(biāo)準(zhǔn)版本的MySQL:有些特殊的應(yīng)用場景會使用到MySQL的非標(biāo)準(zhǔn)版本,這時候我們就需要編譯源碼來安裝。
- 安裝社區(qū)的patch、bugfix、擴(kuò)展插件:通過源碼編譯,可以輕松地添加社區(qū)提供的補(bǔ)丁、修復(fù)程序和擴(kuò)展插件,以滿足特定需求。
- 禁用二進(jìn)制版本中的某些特性:源碼編譯可以讓用戶選擇禁用或啟用某些特定功能,以滿足自己的需求。
- 使用未編譯的功能:有些功能可能在二進(jìn)制版本中并沒有被編譯進(jìn)去,而通過源碼編譯可以啟用這些功能。
- 使用其他編譯器優(yōu)化插件:源碼編譯可以讓用戶選擇使用其他編譯器進(jìn)行編譯,或者進(jìn)行一些個性化的優(yōu)化設(shè)置。例如,如果我們想要使用Intel的C編譯器。
- 鏈接一些其他基礎(chǔ)庫:源碼編譯可以允許用戶鏈接其他基礎(chǔ)庫,例如使用tcmalloc等。
- 編譯debug版本:通過源碼編譯可以生成debug版本的MySQL,用于調(diào)試和分析問題。
因此,了解MySQL源碼編譯安裝對于學(xué)習(xí)MySQL運(yùn)維來說,確實(shí)是非常有幫助的。這不僅可以幫助我們更好地理解MySQL的工作原理,還可以讓我們在面對一些特殊需求時,能夠更加靈活地處理。
1 下載源碼
https://downloads.mysql.com/archives/community/
選擇對應(yīng)版本的源碼包并下載
[root@box1 software]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.32.tar.gz
--2021-03-29 05:50:54-- https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.32.tar.gz
正在解析主機(jī) downloads.mysql.com (downloads.mysql.com)... 137.254.60.14
正在連接 downloads.mysql.com (downloads.mysql.com)|137.254.60.14|:443... 已連接。
已發(fā)出 HTTP 請求,正在等待回應(yīng)... 302 Found
位置:https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.32.tar.gz [跟隨至新的 URL]
--2021-03-29 05:50:55-- https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.32.tar.gz
正在解析主機(jī) cdn.mysql.com (cdn.mysql.com)... 184.27.193.3
正在連接 cdn.mysql.com (cdn.mysql.com)|184.27.193.3|:443... 已連接。
已發(fā)出 HTTP 請求,正在等待回應(yīng)... 200 OK
長度:52882168 (50M) [application/x-tar-gz]
正在保存至: “mysql-boost-5.7.32.tar.gz”
100%[================================================================================================================================================================================>] 52,882,168 2.76MB/s 用時 22s
2021-03-29 05:51:17 (2.32 MB/s) - 已保存 “mysql-boost-5.7.32.tar.gz” [52882168/52882168])
[root@box1 software]# md5sum mysql-boost-5.7.32.tar.gz
fd78ae35fb019656a7a9cb5361e96201 mysql-boost-5.7.32.tar.gz
2 解壓代碼
[root@box1 software]# tar xzf mysql-5.7.32.tar.gz
[root@box1 software]# ls -l
總用量 54844
drwxr-xr-x. 35 7161 31415 4096 9月 23 2020 mysql-5.7.32
-rw-r--r--. 1 root root 56154080 3月 29 05:04 mysql-5.7.32.tar.gz
3 編譯安裝
編譯依賴條件
| 軟件 |
|---|
| cmake |
| make |
| c/c++編譯器 |
| boost c++庫 |
| ssl庫 |
編譯選項
進(jìn)入mysql源碼目錄
# cmake -L
CMake Error at cmake/boost.cmake:88 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
This CMake script will look for boost in <directory>. If it is not there,
it will download and unpack it (in that directory) for you.
-- Cache values
CMAKE_BUILD_TYPE:STRING=RelWithDebInfo
CMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql
COMMUNITY_BUILD:BOOL=ON
DOWNLOAD_BOOST:BOOL=OFF
DOWNLOAD_BOOST_TIMEOUT:STRING=600
ENABLED_PROFILING:BOOL=ON
ENABLE_DTRACE:BOOL=ON
ENABLE_GCOV:BOOL=OFF
ENABLE_GPROF:BOOL=OFF
ENABLE_MEMCACHED_SASL:BOOL=OFF
ENABLE_MEMCACHED_SASL_PWDB:BOOL=OFF
FEATURE_SET:STRING=community
INSTALL_LAYOUT:STRING=STANDALONE
MYSQL_DATADIR:PATH=/usr/local/mysql/data
MYSQL_KEYRINGDIR:PATH=/usr/local/mysql/keyring
OPTIMIZER_TRACE:BOOL=ON
REPRODUCIBLE_BUILD:BOOL=OFF
TMPDIR:PATH=P_tmpdir
WITH_ARCHIVE_STORAGE_ENGINE:BOOL=ON
WITH_ASAN:BOOL=OFF
WITH_ASAN_SCOPE:BOOL=OFF
WITH_AUTHENTICATION_LDAP:BOOL=OFF
WITH_BLACKHOLE_STORAGE_ENGINE:BOOL=ON
WITH_BOOST:PATH=
WITH_CLIENT_PROTOCOL_TRACING:BOOL=ON
WITH_DEBUG:BOOL=OFF
WITH_DEFAULT_COMPILER_OPTIONS:BOOL=ON
WITH_DEFAULT_FEATURE_SET:BOOL=ON
WITH_EDITLINE:STRING=bundled
WITH_EMBEDDED_SERVER:BOOL=ON
WITH_EXTRA_CHARSETS:STRING=all
WITH_FEDERATED_STORAGE_ENGINE:BOOL=ON
WITH_INNOBASE_STORAGE_ENGINE:BOOL=ON
WITH_INNODB_MEMCACHED:BOOL=OFF
WITH_LZ4:STRING=bundled
WITH_MSAN:BOOL=OFF
WITH_PARTITION_STORAGE_ENGINE:BOOL=ON
WITH_RAPID:BOOL=ON
WITH_SSL:STRING=system
WITH_TEST_TRACE_PLUGIN:BOOL=OFF
WITH_UBSAN:BOOL=OFF
WITH_UNIT_TESTS:BOOL=ON
WITH_VALGRIND:BOOL=OFF
WITH_ZLIB:STRING=bundled
下載boost
下載 boost_1_59_0.tar.gz
解壓
/root/software/boost_1_59_0
執(zhí)行cmake
cmake . -DCMAKE_BUILD_TYPE=Debug \
-DMAKE_INSTALL_PREFIX=/app/dtstack/mysql \
-DCOMPILATION_COMMENT="lazybug" \
-DDEFAULT_CHARSET=utf8mb4 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=/root/software/boost_1_59_0 \
-DWITH_SSL=system
-- Running cmake version 2.8.12.2
-- Configuring with MAX_INDEXES = 64U
-- CMAKE_GENERATOR: Unix Makefiles
-- SIZEOF_VOIDP 8
-- MySQL 5.7.32
-- Packaging as: mysql-5.7.32-Linux-x86_64
-- Local boost dir /root/software/boost_1_59_0
-- Found /root/software/boost_1_59_0/boost/version.hpp
-- BOOST_VERSION_NUMBER is #define BOOST_VERSION 105900
-- BOOST_INCLUDE_DIR /root/software/boost_1_59_0
....
-- COMPILE_DEFINITIONS: _GNU_SOURCE;_FILE_OFFSET_BITS=64;HAVE_CONFIG_H
-- CMAKE_C_FLAGS: -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement -Werror
-- CMAKE_CXX_FLAGS: -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter -Werror
-- CMAKE_C_LINK_FLAGS:
-- CMAKE_CXX_LINK_FLAGS:
-- CMAKE_C_FLAGS_DEBUG: -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DENABLED_DEBUG_SYNC -DSAFE_MUTEX
-- CMAKE_CXX_FLAGS_DEBUG: -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DENABLED_DEBUG_SYNC -DSAFE_MUTEX
-- Configuring done
-- Generating done
-- Build files have been written to: /root/software/mysql-5.7.32
執(zhí)行make
make -j 4
Scanning dependencies of target INFO_SRC
Scanning dependencies of target INFO_BIN
Scanning dependencies of target abi_check
Scanning dependencies of target zlib
[ 0%] Built target INFO_SRC
[ 0%] [ 0%] Built target INFO_BIN
[ 0%] Building C object zlib/CMakeFiles/zlib.dir/adler32.o
...
[100%] Building CXX object sql/CMakeFiles/mysqld.dir/main.cc.o
Linking CXX executable mysqld
[100%] Building CXX object storage/perfschema/unittest/CMakeFiles/pfs_connect_attr-t.dir/pfs_connect_attr-t.cc.o
[100%] Building CXX object storage/perfschema/unittest/CMakeFiles/pfs_connect_attr-t.dir/__/__/__/sql/sql_builtin.cc.o
[100%] Building C object storage/perfschema/unittest/CMakeFiles/pfs_connect_attr-t.dir/__/__/__/mysys/string.c.o
Linking CXX executable pfs_connect_attr-t
[100%] Built target mysql_embedded
[100%] Built target mysqltest_embedded
[100%] Built target mysqld
[100%] Built target pfs_connect_attr-t
執(zhí)行make install 安裝
root@box1 mysql-5.7.32]# make install
[ 0%] Built target INFO_BIN
[ 0%] Built target INFO_SRC
[ 0%] Built target abi_check
[ 0%] Built target zlib
[ 2%] Built target edit
...
-- Up-to-date: /usr/local/mysql/mysql-test/mysql-test-run
-- Installing: /usr/local/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
-- Up-to-date: /usr/local/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
-- Installing: /usr/local/mysql/mysql-test/lib/My/SafeProcess/Base.pm
-- Installing: /usr/local/mysql/support-files/mysqld_multi.server
-- Installing: /usr/local/mysql/support-files/mysql-log-rotate
-- Installing: /usr/local/mysql/support-files/magic
-- Installing: /usr/local/mysql/share/aclocal/mysql.m4
-- Installing: /usr/local/mysql/support-files/mysql.server
安裝的文件
[root@box1 mysql]# ls
bin docs include lib LICENSE man mysql-test README README-test share support-files
| 目錄 | 內(nèi)容 |
|---|---|
| bin | mysql的可執(zhí)行文件和工具,腳本 |
| mysqld | |
| mysql | |
| mysqlbinlog | |
| mysqldump | |
| mysqladmin | |
| mysqld_safe | |
| docs | / |
| include | 頭文件,編譯時依賴 |
| lib | mysql client依賴庫 |
| mysql plugin | |
| man | / |
| share | mysql error信息 |
| mysql系統(tǒng)初始化文件 | |
| support | 一些腳本 |
4 初始化數(shù)據(jù)庫 & 啟動MySQL
初始化數(shù)據(jù)庫和啟動MySQL的步驟和上一篇二進(jìn)制安裝方式一樣(MySQL運(yùn)維實(shí)戰(zhàn)(1.2)安裝部署:使用二進(jìn)制安裝部署),這里不再重復(fù)。
更多技術(shù)信息請查看云掣官網(wǎng)https://yunche.pro/?t=yrgw
總結(jié)
以上是生活随笔為你收集整理的MySQL运维实战(1.3)安装部署:源码编译安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java语言概述
- 下一篇: 如何接住一个“学渣”儿子?