日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL运维实战(1.3)安装部署:源码编译安装

發布時間:2024/1/5 数据库 31 coder
生活随笔 收集整理的這篇文章主要介紹了 MySQL运维实战(1.3)安装部署:源码编译安装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:俊達

引言

在大多數情況下,我們不需要自己編譯MySQL源碼,因為編譯的MySQL和二進制包的內容基本一致。然而,有些特殊情況可能需要我們采用源碼編譯的方式安裝MySQL:

  • 安裝非標準版本的MySQL:有些特殊的應用場景會使用到MySQL的非標準版本,這時候我們就需要編譯源碼來安裝。
  • 安裝社區的patch、bugfix、擴展插件:通過源碼編譯,可以輕松地添加社區提供的補丁、修復程序和擴展插件,以滿足特定需求。
  • 禁用二進制版本中的某些特性:源碼編譯可以讓用戶選擇禁用或啟用某些特定功能,以滿足自己的需求。
  • 使用未編譯的功能:有些功能可能在二進制版本中并沒有被編譯進去,而通過源碼編譯可以啟用這些功能。
  • 使用其他編譯器優化插件:源碼編譯可以讓用戶選擇使用其他編譯器進行編譯,或者進行一些個性化的優化設置。例如,如果我們想要使用Intel的C編譯器。
  • 鏈接一些其他基礎庫:源碼編譯可以允許用戶鏈接其他基礎庫,例如使用tcmalloc等。
  • 編譯debug版本:通過源碼編譯可以生成debug版本的MySQL,用于調試和分析問題。

因此,了解MySQL源碼編譯安裝對于學習MySQL運維來說,確實是非常有幫助的。這不僅可以幫助我們更好地理解MySQL的工作原理,還可以讓我們在面對一些特殊需求時,能夠更加靈活地處理。

1 下載源碼

https://downloads.mysql.com/archives/community/

選擇對應版本的源碼包并下載

[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
正在解析主機 downloads.mysql.com (downloads.mysql.com)... 137.254.60.14
正在連接 downloads.mysql.com (downloads.mysql.com)|137.254.60.14|:443... 已連接。
已發出 HTTP 請求,正在等待回應... 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
正在解析主機 cdn.mysql.com (cdn.mysql.com)... 184.27.193.3
正在連接 cdn.mysql.com (cdn.mysql.com)|184.27.193.3|:443... 已連接。
已發出 HTTP 請求,正在等待回應... 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庫

編譯選項
進入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

執行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

執行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

執行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
目錄 內容
bin mysql的可執行文件和工具,腳本
mysqld
mysql
mysqlbinlog
mysqldump
mysqladmin
mysqld_safe
docs /
include 頭文件,編譯時依賴
lib mysql client依賴庫
mysql plugin
man /
share mysql error信息
mysql系統初始化文件
support 一些腳本

4 初始化數據庫 & 啟動MySQL

初始化數據庫和啟動MySQL的步驟和上一篇二進制安裝方式一樣(MySQL運維實戰(1.2)安裝部署:使用二進制安裝部署),這里不再重復。

更多技術信息請查看云掣官網https://yunche.pro/?t=yrgw

總結

以上是生活随笔為你收集整理的MySQL运维实战(1.3)安装部署:源码编译安装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。