Debian編譯安裝mysql8.0.41源碼包
以下是在Debian系統上通過編譯源碼安裝MySQL 8.0.41的完整步驟,包含依賴管理、編譯參數優化和常見問題處理:
???? 準備工作
???????? 1. 安裝編譯依賴
sudo apt update
sudo apt install -y \cmake gcc g++ make libssl-dev libncurses5-dev libtinfo-dev \libreadline-dev zlib1g-dev libaio-dev libevent-dev \bison pkg-config
???????? 2. 下載MySQL 8.0.41源碼包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41
???? 關鍵配置與編譯
???????? 3. 配置CMake參數(優化版)
mkdir build && cd build
cmake .. \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql8 \-DMYSQL_DATADIR=/var/lib/mysql8 \-DSYSCONFDIR=/etc \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_SSL=system \-DWITH_ZLIB=system \-DWITH_BOOST=../boost \-DENABLE_DOWNLOADS=OFF \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_0900_ai_ci \-DFORCE_INSOURCE_BUILD=1
???????? 4. 啟動編譯(多核加速)
make -j$(nproc) 2>&1 | tee compile.log # 記錄編譯日志
sudo make install
???? 系統集成與初始化
???????? 5. 創建專用用戶和目錄
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo mkdir -p /var/lib/mysql8
sudo chown -R mysql:mysql /usr/local/mysql8 /var/lib/mysql8
???????? 6. 初始化數據庫(自動生成臨時密碼)
cd /usr/local/mysql8
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql8 --datadir=/var/lib/mysql8
記錄臨時密碼(查看日志或輸出):
sudo grep 'temporary password' /var/lib/mysql8/*.log
???????? 7. 配置文件my.cnf
sudo nano /etc/mysql8.cnf # 新建專用配置文件
輸入以下內容:
[mysqld]
user=mysql
basedir=/usr/local/mysql8
datadir=/var/lib/mysql8
socket=/tmp/mysql8.sock
port=3307 # 避免與系統自帶MySQL沖突
log-error=/var/log/mysql8/error.log
???? 服務管理與安全配置
???????? 8. 創建Systemd服務
sudo nano /etc/systemd/system/mysql8.service
輸入以下內容:
[Unit]
Description=MySQL Server 8.0.41
After=network.target[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/etc/mysql8.cnf
Restart=on-failure
LimitNOFILE=65535[Install]
WantedBy=multi-user.target
???????? 9. 啟動服務并設置開機自啟
sudo systemctl daemon-reload
sudo systemctl start mysql8
sudo systemctl enable mysql8
???????? 10. 修改root密碼
/usr/local/mysql8/bin/mysql -u root -p --socket=/tmp/mysql8.sock
輸入臨時密碼后執行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourSecurePassword123!';
FLUSH PRIVILEGES;
???? 高級優化配置
???????? 1. 內存參數調整(根據服務器配置)
# 在/etc/mysql8.cnf的[mysqld]段添加
innodb_buffer_pool_size=2G
key_buffer_size=512M
max_connections=500
???????? 2. 開啟慢查詢日志
slow_query_log=1
slow_query_log_file=/var/log/mysql8/slow.log
long_query_time=2
???? 故障排查指南
現象 | 解決方法 |
---|---|
編譯時報Boost not found | 確認源碼包是否完整,檢查-DWITH_BOOST=../boost 參數指向正確目錄 |
啟動時權限錯誤 | 執行sudo chown -R mysql:mysql /var/lib/mysql8 修復權限 |
端口沖突 | 修改/etc/mysql8.cnf 中的port 值,并重啟服務 |
無法連接socket | 檢查/tmp/mysql8.sock 是否存在,或顯式指定socket路徑連接 |
???? 版本管理建議
- 多版本共存
通過不同端口(如3306/3307)和socket路徑實現多MySQL實例共存。 - 環境變量隔離
為編譯版MySQL單獨設置PATH:echo 'export PATH=/usr/local/mysql8/bin:$PATH' >> ~/.bashrc
通過以上步驟,您可以在Debian系統上安全地編譯安裝MySQL 8.0.41,并獲得完全可控的自定義配置。此方法適合需要深度定制或運行多版本MySQL的環境。
以下是在Debian系統下編譯安裝MySQL 8.0.41源碼包的詳細步驟:
???? 1. 安裝編譯依賴
sudo apt update
sudo apt install cmake libncurses-dev libssl-dev make gcc g++ bison
sudo apt install libtinfo5 zlib1g-dev libreadline-dev
???? 2. 下載源碼包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41
???? 3. 創建構建目錄并配置
mkdir build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1
???? 4. 編譯并安裝
make -j$(nproc)
sudo make install
???? 5. 創建mysql用戶和組
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
???? 6. 初始化數據庫
sudo mkdir -p /var/lib/mysql
sudo chown -R mysql:mysql /var/lib/mysql
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql
記錄輸出的臨時root密碼(示例:A temporary password is generated for root@localhost: xxxxxxxx
)
???? 7. 配置服務文件
sudo cp support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo update-rc.d mysql defaults
???? 8. 啟動MySQL服務
sudo systemctl start mysql
???? 9. 設置環境變量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
???? 10. 登錄并修改root密碼
mysql -u root -p
# 輸入初始化時記錄的臨時密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密碼';
FLUSH PRIVILEGES;
exit
???? 11. 驗證安裝
mysql --version
# 應顯示:mysql Ver 8.0.41 for Linux on x86_64 (Source distribution)
???? 補充說明:
-
如果編譯時出現依賴缺失錯誤,根據提示安裝對應開發包(如
sudo apt install libxxx-dev
) -
可通過以下命令查看完整編譯選項:
cmake .. -L
-
默認數據目錄:
/var/lib/mysql
-
默認配置文件:
/etc/my.cnf
(需手動創建) -
建議定期執行:
sudo apt update && sudo apt upgrade
sudo /usr/local/mysql/bin/mysql_upgrade -u root -p
完成以上步驟后,您的MySQL 8.0.41源碼編譯安裝即完成。建議通過SHOW VARIABLES LIKE "%version%";
命令在MySQL客戶端中再次驗證版本信息。
以下是基于知識庫信息整理的在Debian系統上編譯安裝MySQL 8.0.41源碼包的步驟指南:
???? 步驟 1:安裝編譯環境和依賴項
sudo apt update
sudo apt install -y build-essential cmake libncurses-dev libssl-dev libaio-dev libelf-dev libmecab-dev libreadline-dev libbz2-dev liblz4-dev liblzma-dev libzstd-dev libjemalloc-dev libnuma-dev libcurl4-openssl-dev libprotobuf-dev protobuf-compiler libmysqlclient-dev
???? 步驟 2:下載 MySQL 8.0.41 源碼包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41
???? 步驟 3:配置編譯選項
# 創建構建目錄(可選,但推薦)
mkdir build
cd build# 執行 CMake 配置(根據需求調整參數)
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/lib/mysql \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci \
-DWITH_SSL=system \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=boost # 如果沒有 Boost 庫,可添加 -DWITH_BOOST=system 或手動下載 Boost
參數說明:
-DCMAKE_INSTALL_PREFIX
:指定安裝路徑(默認/usr/local/mysql
)。-DMYSQL_DATADIR
:指定數據目錄(默認/var/lib/mysql
)。-DDEFAULT_CHARSET
和-DDEFAULT_COLLATION
:設置默認字符集和排序規則。-DWITH_SSL=system
:使用系統 SSL 庫。-DWITH_BOOST
:指定 Boost 庫路徑(如果未安裝 Boost,可添加-DWITH_BOOST=system
或下載 Boost 源碼)。
???? 步驟 4:編譯和安裝
# 編譯(使用多線程加速,如 4 核 CPU 可用 -j4)
make -j4# 安裝
sudo make install
???? 步驟 5:初始化 MySQL 數據目錄
# 創建 MySQL 數據目錄和用戶
sudo mkdir -p /var/lib/mysql
sudo groupadd mysql
sudo useradd -r -g mysql -s /sbin/nologin mysql# 將目錄權限賦予 mysql 用戶
sudo chown -R mysql:mysql /usr/local/mysql
sudo chown -R mysql:mysql /var/lib/mysql# 初始化數據庫
sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql
???? 步驟 6:配置 MySQL 系統服務
# 復制 MySQL 系統服務配置文件
sudo cp support-files/mysql.server /etc/init.d/mysql# 賦予執行權限
sudo chmod +x /etc/init.d/mysql# 設置開機自啟
sudo update-rc.d mysql defaults
???? 步驟 7:配置 my.cnf
# 創建或編輯配置文件
sudo vi /etc/my.cnf# 示例配置(根據需求調整):
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
innodb_buffer_pool_size=1G[client]
default-character-set=utf8mb4
socket=/var/run/mysqld/mysqld.sock
???? 步驟 8:啟動 MySQL 服務
sudo service mysql start
???? 步驟 9:安全設置
# 運行安全腳本(設置 root 密碼、刪除匿名用戶等)
sudo /usr/local/mysql/bin/mysql_secure_installation
???? 常見問題解決
-
依賴項缺失:
- 如果編譯時提示缺少庫(如
libssl-dev
),安裝對應包:sudo apt install <package-name>
- 如果編譯時提示缺少庫(如
-
Boost 庫缺失:
- 若編譯時提示缺少 Boost,可手動下載并編譯:
wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz tar -zxvf boost_1_78_0.tar.gz cd boost_1_78_0 ./bootstrap.sh ./b2 sudo ./b2 install
- 若編譯時提示缺少 Boost,可手動下載并編譯:
-
權限問題:
- 確保數據目錄和安裝目錄的權限正確:
sudo chown -R mysql:mysql /var/lib/mysql
- 確保數據目錄和安裝目錄的權限正確:
???? 驗證安裝
# 檢查 MySQL 版本
/usr/local/mysql/bin/mysql --version# 登錄 MySQL(使用步驟 9 設置的 root 密碼)
/usr/local/mysql/bin/mysql -u root -p
???? 注意事項
- 如果遇到
cmake
配置失敗,請檢查輸出的錯誤信息并調整參數。 - MySQL 8.0 需要較新的編譯工具鏈,確保系統依賴已更新。
- 如果使用自定義路徑,需確保環境變量(如
PATH
)包含/usr/local/mysql/bin
。
如果需要進一步優化或調整配置,可以參考知識庫中提到的 my.cnf
參數和安全加固步驟。
下面為你介紹在Debian系統上編譯安裝MySQL 8.0.41源碼包的具體步驟:
???? 1. 安裝編譯依賴
要編譯MySQL源碼,得先安裝必要的依賴包。打開終端并執行以下命令:
sudo apt update
sudo apt install -y build-essential cmake bison libncurses5-dev libssl-dev libreadline-dev libffi-dev
???? 2. 下載MySQL 8.0.41源碼包
你可以從MySQL官方網站下載MySQL 8.0.41的源碼包,也能使用wget
命令下載:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.41.tar.gz
???? 3. 解壓源碼包
下載完成后,解壓源碼包:
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41
???? 4. 創建構建目錄
為了保持源碼目錄的整潔,你可以創建一個單獨的構建目錄:
mkdir build
cd build
???? 5. 使用CMake配置編譯選項
在構建目錄中,使用CMake配置編譯選項:
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/usr/local/mysql/data \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock \-DMYSQL_TCP_PORT=3306 \-DENABLED_LOCAL_INFILE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_unicode_ci
???? 6. 編譯和安裝
配置完成后,進行編譯和安裝:
make -j$(nproc)
sudo make install
???? 7. 配置MySQL
創建MySQL用戶和組,設置文件權限,并初始化數據目錄:
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
sudo chown -R mysql:mysql /usr/local/mysql
sudo mkdir /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
???? 8. 啟動MySQL服務
sudo bin/mysqld_safe --user=mysql &
???? 9. 配置環境變量
為了方便使用MySQL命令,你可以將MySQL的二進制目錄添加到系統的環境變量中:
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
source ~/.bashrc
???? 10. 安全設置
使用mysql_secure_installation
腳本進行安全設置,如設置root密碼、刪除匿名用戶等:
sudo mysql_secure_installation
按照以上步驟操作,你就能在Debian系統上成功編譯安裝MySQL 8.0.41源碼包。
在Debian上編譯安裝MySQL 8.0.41源碼包的步驟如下:
???? 1. 安裝依賴項
確保系統中已安裝必要的開發工具和庫:
sudo apt-get update
sudo apt-get install -y build-essential cmake libssl-dev libncurses-dev bison flex libaio-dev
???? 2. 下載MySQL源碼包
從MySQL官方網站下載MySQL 8.0.41的源碼包:
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.41.tar.gz
???? 3. 解壓源碼包
解壓下載的文件:
tar -zxvf mysql-boost-8.0.41.tar.gz
cd mysql-8.0.41
???? 4. 創建MySQL用戶和組
創建一個專門用于運行MySQL的用戶和組:
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
???? 5. 配置編譯選項
使用CMake配置編譯參數:
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SSL=system \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci
???? 6. 編譯和安裝
編譯源碼并安裝:
make -j$(nproc)
sudo make install
???? 7. 初始化數據庫
初始化MySQL數據庫并記錄生成的臨時密碼:
sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
???? 8. 配置MySQL服務
將MySQL服務配置為系統服務:
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo chmod +x /etc/init.d/mysql
sudo systemctl enable mysql
???? 9. 啟動MySQL服務
啟動MySQL服務:
sudo systemctl start mysql
???? 10. 登錄并修改密碼
使用臨時密碼登錄MySQL并修改密碼:
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';
???? 11. 配置環境變量(可選)
為了方便使用MySQL命令,可以將MySQL的可執行文件路徑添加到環境變量中:
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
完成以上步驟后,MySQL 8.0.41應該已在Debian系統上成功安裝并運行。
以下是Debian系統編譯安裝MySQL 8.0.41源碼包的詳細步驟:
???? 一、環境準備
-
更新系統
sudo apt update && sudo apt upgrade -y
-
安裝依賴項
sudo apt install -y cmake build-essential libncurses-dev libssl-dev \ libreadline-dev zlib1g-dev libboost-dev pkg-config bison
???? 二、下載源碼
-
獲取源碼包
從MySQL官方倉庫下載源碼(需注冊Oracle賬戶),或使用wget:wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.41.tar.gz
-
驗證完整性
檢查SHA256校驗和(需與官網一致):sha256sum mysql-boost-8.0.41.tar.gz
???? 三、編譯配置
-
解壓源碼
tar -zxvf mysql-boost-8.0.41.tar.gz cd mysql-8.0.41
-
CMake配置
創建編譯目錄并配置參數(根據需求調整):mkdir build cd build cmake .. \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/var/lib/mysql \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_BOOST=../boost \ -DENABLED_LOCAL_INFILE=1 \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci
關鍵參數說明:
-DCMAKE_INSTALL_PREFIX
:安裝路徑-DWITH_BOOST
:指定Boost庫路徑(源碼包已包含)-DDEFAULT_CHARSET
:默認字符集
???? 四、編譯與安裝
-
編譯源碼
使用多線程加速(根據CPU核心數調整-j4
):make -j4
-
安裝到系統
sudo make install
???? 五、系統配置
-
創建MySQL用戶/組
sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql
-
初始化數據目錄
sudo mkdir -p /var/lib/mysql sudo chown -R mysql:mysql /var/lib/mysql /usr/local/mysql/bin/mysqld --initialize --user=mysql
記錄初始密碼:輸出中的
root@localhost: 臨時密碼
。 -
配置文件
my.cnf
創建/etc/my.cnf
并添加基礎配置:[mysqld] datadir=/var/lib/mysql socket=/var/run/mysqld/mysqld.sock log-error=/var/log/mysql/error.log pid-file=/var/run/mysqld/mysqld.pid
???? 六、服務管理
-
注冊為Systemd服務
創建文件/etc/systemd/system/mysql.service
:[Unit] Description=MySQL Server After=network.target[Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf Restart=on-failure[Install] WantedBy=multi-user.target
-
啟動服務
sudo systemctl daemon-reload sudo systemctl start mysql sudo systemctl enable mysql
???? 七、安全初始化
- 設置root密碼
按提示操作:輸入臨時密碼 → 修改密碼 → 刪除測試數據庫 → 禁用遠程root登錄等。/usr/local/mysql/bin/mysql_secure_installation
???? 八、驗證安裝
-
檢查版本
/usr/local/mysql/bin/mysql --version
-
登錄數據庫
mysql -u root -p
???? 常見問題
-
依賴缺失
若CMake報錯,根據提示安裝缺失的包(如libtirpc-dev
)。 -
編譯失敗
- 檢查磁盤空間(需至少15GB可用)
- 清理后重試:
make clean && rm CMakeCache.txt
-
權限問題
確保所有MySQL相關目錄(如/var/lib/mysql
)屬主為mysql:mysql
。
按此流程操作,可在Debian系統上完成MySQL 8.0.41的源碼編譯安裝。
以下是基于 Debian 系統編譯安裝 MySQL 8.0.41 源碼包的詳細指南,整合了多篇文檔的核心步驟與注意事項:
???? 一、環境準備與依賴安裝
-
更新系統與基礎工具
sudo apt update && sudo apt upgrade sudo apt install build-essential cmake libncurses5-dev libssl-dev bison git
?
build-essential
包含 GCC 和 make 工具
?bison
用于 SQL 解析,libncurses5-dev
支持終端界面開發 -
安裝 Boost 庫
? 從 Boost 官網下載 1.77.0 或兼容版本
? 解壓后通過 CMake 參數指定路徑,例如:cmake . -DWITH_BOOST=/path/to/boost_1_77_0
???? 二、源碼編譯與安裝
-
獲取源碼包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz tar -zxvf mysql-8.0.41.tar.gz cd mysql-8.0.41
-
配置編譯選項
mkdir build && cd build cmake .. \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/var/lib/mysql \-DSYSCONFDIR=/etc \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_BOOST=/path/to/boost_1_77_0
? 關鍵參數說明:
?CMAKE_INSTALL_PREFIX
:指定安裝路徑
?WITH_DEBUG=1
可啟用調試模式 -
編譯與安裝
make -j$(nproc) # 多核并行加速編譯 sudo make install
? 編譯時間約 30 分鐘至數小時,取決于硬件性能
???? 三、數據庫初始化與配置
-
創建專用用戶與權限設置
sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql sudo chown -R mysql:mysql /usr/local/mysql
-
初始化數據庫
cd /usr/local/mysql sudo bin/mysqld --initialize --user=mysql
? 記錄臨時密碼:初始化日志末尾會生成臨時 root 密碼
-
配置文件與啟動腳本
sudo cp support-files/my-default.cnf /etc/my.cnf sudo cp support-files/mysql.server /etc/init.d/mysqld sudo systemctl daemon-reload
???? 四、服務管理與驗證
-
啟動 MySQL 服務
sudo systemctl start mysqld sudo systemctl enable mysqld
-
登錄與修改密碼
mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
-
環境變量配置(可選)
將/usr/local/mysql/bin
添加到PATH
變量:echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc source ~/.bashrc
???? 五、常見問題解決
-
依賴缺失錯誤
? 若編譯報錯提示缺少庫文件,重新檢查libssl-dev
、ncurses-devel
等是否安裝 -
Boost 路徑錯誤
? 確保 CMake 參數WITH_BOOST
指向解壓后的 Boost 目錄 -
權限問題
? 數據庫目錄需屬主為mysql
用戶,避免啟動失敗
???? 引用說明
? 依賴項安裝參考了
? Boost 庫配置來自
? 編譯參數與初始化步驟整合自
要在Debian上從源碼包編譯安裝MySQL 8.0.41,可以按照以下步驟進行:
???? 步驟一:準備工作
- 更新系統包:
sudo apt update && sudo apt upgrade -y
- 安裝必要的依賴包:
sudo apt install -y build-essential cmake libncurses5-dev libssl-dev
???? 步驟二:下載MySQL源碼包
- 下載MySQL 8.0.41源碼:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
- 解壓源碼包:
tar -xzvf mysql-8.0.41.tar.gz cd mysql-8.0.41
???? 步驟三:配置編譯選項
- 創建構建目錄:
mkdir build && cd build
- 運行CMake配置:
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_EXTRA_CHARSETS=all \-DWITH_SSL=system \-DWITH_ZLIB=system
???? 步驟四:編譯和安裝
- 編譯源碼:
make -j $(nproc)
- 安裝MySQL:
sudo make install
???? 步驟五:初始化和配置MySQL
- 創建MySQL用戶和組:
sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql
- 初始化數據庫:
cd /usr/local/mysql sudo bin/mysqld --initialize --user=mysql
- 設置權限:
sudo chown -R mysql:mysql /usr/local/mysql
- 啟動MySQL服務:
sudo bin/mysqld_safe --user=mysql &
- 設置開機自啟(可選):
可以參考MySQL官方文檔配置systemd服務文件以實現開機自啟。
???? 步驟六:設置環境變量(可選)
將MySQL的bin目錄添加到PATH中:
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
???? 注意事項
- 編譯過程可能需要較長時間,具體取決于系統性能。
- 確保在編譯前備份重要數據,以防萬一出現問題。
- 根據需要調整CMake配置選項,以滿足特定需求。
按照以上步驟,你應該能夠在Debian系統上成功編譯并安裝MySQL 8.0.41。
在Debian系統上編譯安裝MySQL 8.0.41源碼需要以下步驟,請確保全程使用root
權限或配合sudo
執行:
???? 1. 安裝依賴
apt update
apt install -y cmake gcc g++ make libncurses-dev libssl-dev libtinfo5 \libsasl2-dev zlib1g-dev libreadline-dev pkg-config bison libboost-dev
???? 2. 下載源碼
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
tar -zxvf mysql-8.0.41.tar.gz
cd mysql-8.0.41
???? 3. 配置編譯選項
mkdir build
cd build
cmake .. \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/var/lib/mysql \-DSYSCONFDIR=/etc \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_SSL=system \-DWITH_BOOST=../boost
關鍵參數說明:
-DCMAKE_INSTALL_PREFIX
:MySQL安裝路徑-DMYSQL_DATADIR
:數據庫文件存儲路徑-DWITH_BOOST
:指向源碼包內的boost
目錄
???? 4. 編譯并安裝
make -j$(nproc) # 使用多核編譯加速
make install
???? 5. 創建MySQL用戶和組
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
???? 6. 初始化數據庫
cd /usr/local/mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql
初始化后會生成臨時root密碼(在終端輸出中查找 A temporary password is generated for root@localhost: 臨時密碼
)。
???? 7. 配置systemd服務
創建文件 /etc/systemd/system/mysql.service
:
[Unit]
Description=MySQL Server
After=network.target[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/mysql/my.cnf
Restart=on-failure[Install]
WantedBy=multi-user.target
???? 8. 啟動MySQL
systemctl daemon-reload
systemctl start mysql
systemctl enable mysql
???? 9. 安全配置
/usr/local/mysql/bin/mysql_secure_installation
按提示設置root密碼、刪除匿名用戶、禁止遠程root登錄等。
???? 10. 配置環境變量
在 /etc/profile
末尾添加:
export PATH=/usr/local/mysql/bin:$PATH
執行 source /etc/profile
生效。
???? 常見問題
- 依賴缺失:如果編譯失敗,檢查錯誤信息并安裝對應依賴。
- Boost路徑錯誤:確保
-DWITH_BOOST
指向源碼內的boost
目錄。 - 權限問題:確保
/var/lib/mysql
和mysql-files
目錄權限屬于mysql
用戶。
通過以上步驟即可完成MySQL 8.0.41的源碼編譯安裝。