文章目錄
- 1.整體內容介紹
- 2.下載編譯流程
- 2.1 安裝編譯工具和依賴庫
- 2.2 下載編譯
- 3.配置MySQL
- 3.1 數據庫初始化
- 3.2 編輯配置文件
- 3.3 啟動停止MySQL
- 3.4 登錄并修改密碼
1.整體內容介紹
MySQL技術系列文章將從MySQL下載編譯,使用到MySQL各組件使用原理+源碼分析,采用自底向上,從整體到局部的方式來進行詳細分析(從MySQL系統概述到存儲管理,再到索引,查詢編譯,事務,并發,安全,復制和分布式相關內容)。本篇為第一篇,也就是環境準備篇,以此環境為基礎來進行后續的介紹。
2.下載編譯流程
現在應用比較多的新版本是8.x.x,所以采用8.0.33版本來進行源碼的分析。
2.1 安裝編譯工具和依賴庫
sudo apt update
sudo apt install -y cmake gcc g++ make libncurses-dev libssl-dev libboost-all-dev libbz2-dev pkg-config libldap2-dev libsasl2-dev
2.2 下載編譯
cmake .. \
-DCMAKE_INSTALL_PREFIX=/home/xxx/openSource/DataBase/mysql/install \
-DMYSQL_DATADIR=/home/xxx/openSource/DataBase/mysql/data \
-DWITH_BOOST=../boost \
-DSYSCONFDIR=/home/xxx/openSource/DataBase/mysql/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_DEBUG=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DWITH_SSL=system 參數詳解:
-DCMAKE_INSTALL_PREFIX //安裝目錄
-DSYSCONFDIR //配置文件目錄(默認可以不安裝配置文件)
-DMYSQL_DATADIR //數據存儲目錄
-DWITH_BOOST //boost目錄
-DINSTALL_MANDIR //幫助文檔
-DMYSQL_TCP_PORT //默認端口號
-DMYSQL_UNIX_ADDR //sock文件位置
-DDEFAULT_CHARSET //默認字符集。字符集的支持,可以調
-DEXTRA_CHARSETS //擴展的字符集支持所有的
-DDEFAULT_COLLATION //默認字符集為utf8;默認校對規則為utf8_general_ci
-DWITH_READLINE //上下翻歷史命令
-DWITH_SSL //ssl路徑,可以使用系統的system,也可以使用自己編譯的指定路徑下的
-DWITH_EMBEDDED_SERVER //編譯并啟用嵌入式MySQL服務器
-DENABLED_LOCAL_INFILE //從本地導入數據
-DWITH_INNOBASE_STORAGE_ENGINE //編譯InnoDB存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE //編譯ARCHIVE存儲引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE //編譯BLACKHOLE引擎
-DWITH_DEBUG //debug版本
#編譯安裝
make -j8 && make install
過程中可能出現的問題:
1)CMake Error at CMakeLists.txt:1374 (MESSAGE):Please install the patchelf(1) utility:直接注釋掉cmakefile中對應的檢查即可。
2)undefined reference to `EVP_aes_128_cfb1’:OpenSSL 庫版本不兼容或配置不正確。
# 下載 OpenSSL 源碼
wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
tar -zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w# 配置并編譯
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
make
sudo make install# 更新庫路徑
echo "/usr/local/openssl/lib" | sudo tee /etc/ld.so.conf.d/openssl.conf
sudo ldconfig# 驗證安裝
/usr/local/openssl/bin/openssl version
#更新cmake參數,清理后編譯
-DWITH_SSL=/usr/local/openssl
3.配置MySQL
3.1 數據庫初始化
cd ~/openSource/DataBase/mysql/install # 指定的安裝路徑
sudo bin/mysqld --initialize --user=xxx --basedir=/home/xxx/openSource/DataBase/mysql/install --datadir=/home/xxx/openSource/DataBase/mysql/data/
此時會生成臨時密碼,后面可以在日志中查找,也可以在這記錄一下。
3.2 編輯配置文件
指定的配置文件路徑下去編輯:vim
/home/xxx/openSource/DataBase/mysql/etc/my.cnf
[mysqld]
basedir=/home/xxxx/openSource/DataBase/mysql/install
datadir=/home/xxxx/openSource/DataBase/mysql/data
socket=/tmp/mysql.sock
user=mysql[client]
socket=/tmp/mysql.sock
3.3 啟動停止MySQL
/home/xxx/openSource/DataBase/mysql/install/support-files/mysql.server start
/home/xxx/openSource/DataBase/mysql/install/support-files/mysql.server stop
3.4 登錄并修改密碼
./bin/mysql -u root -p
輸入臨時密碼后登錄成功
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘你的新密碼’;
以上就完成了MySQL的編譯安裝和配置,可以使用其進行調試了。
原文鏈接