Debian編譯安裝mysql8.0.41源碼包 筆記250401

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路徑連接

???? 版本管理建議

  1. 多版本共存
    通過不同端口(如3306/3307)和socket路徑實現多MySQL實例共存。
  2. 環境變量隔離
    為編譯版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)

???? 補充說明:

  1. 如果編譯時出現依賴缺失錯誤,根據提示安裝對應開發包(如sudo apt install libxxx-dev

  2. 可通過以下命令查看完整編譯選項:

cmake .. -L
  1. 默認數據目錄:/var/lib/mysql

  2. 默認配置文件:/etc/my.cnf(需手動創建)

  3. 建議定期執行:

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

???? 常見問題解決

  1. 依賴項缺失

    • 如果編譯時提示缺少庫(如 libssl-dev),安裝對應包:
      sudo apt install <package-name>
      
  2. 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
      
  3. 權限問題

    • 確保數據目錄和安裝目錄的權限正確:
      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源碼包的詳細步驟:


???? 一、環境準備

  1. 更新系統

    sudo apt update && sudo apt upgrade -y
    
  2. 安裝依賴項

    sudo apt install -y cmake build-essential libncurses-dev libssl-dev \
    libreadline-dev zlib1g-dev libboost-dev pkg-config bison
    

???? 二、下載源碼

  1. 獲取源碼包
    從MySQL官方倉庫下載源碼(需注冊Oracle賬戶),或使用wget:

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.41.tar.gz
    
  2. 驗證完整性
    檢查SHA256校驗和(需與官網一致):

    sha256sum mysql-boost-8.0.41.tar.gz
    

???? 三、編譯配置

  1. 解壓源碼

    tar -zxvf mysql-boost-8.0.41.tar.gz
    cd mysql-8.0.41
    
  2. 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:默認字符集

???? 四、編譯與安裝

  1. 編譯源碼
    使用多線程加速(根據CPU核心數調整-j4):

    make -j4
    
  2. 安裝到系統

    sudo make install
    

???? 五、系統配置

  1. 創建MySQL用戶/組

    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
    
  2. 初始化數據目錄

    sudo mkdir -p /var/lib/mysql
    sudo chown -R mysql:mysql /var/lib/mysql
    /usr/local/mysql/bin/mysqld --initialize --user=mysql
    

    記錄初始密碼:輸出中的root@localhost: 臨時密碼

  3. 配置文件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
    

???? 六、服務管理

  1. 注冊為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
    
  2. 啟動服務

    sudo systemctl daemon-reload
    sudo systemctl start mysql
    sudo systemctl enable mysql
    

???? 七、安全初始化

  1. 設置root密碼
    /usr/local/mysql/bin/mysql_secure_installation
    
    按提示操作:輸入臨時密碼 → 修改密碼 → 刪除測試數據庫 → 禁用遠程root登錄等。

???? 八、驗證安裝

  1. 檢查版本

    /usr/local/mysql/bin/mysql --version
    
  2. 登錄數據庫

    mysql -u root -p
    

???? 常見問題

  1. 依賴缺失
    若CMake報錯,根據提示安裝缺失的包(如libtirpc-dev)。

  2. 編譯失敗

    • 檢查磁盤空間(需至少15GB可用)
    • 清理后重試:make clean && rm CMakeCache.txt
  3. 權限問題
    確保所有MySQL相關目錄(如/var/lib/mysql)屬主為mysql:mysql


按此流程操作,可在Debian系統上完成MySQL 8.0.41的源碼編譯安裝。










以下是基于 Debian 系統編譯安裝 MySQL 8.0.41 源碼包的詳細指南,整合了多篇文檔的核心步驟與注意事項:


???? 一、環境準備與依賴安裝

  1. 更新系統與基礎工具

    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 支持終端界面開發

  2. 安裝 Boost 庫
    ? 從 Boost 官網下載 1.77.0 或兼容版本
    ? 解壓后通過 CMake 參數指定路徑,例如:

    cmake . -DWITH_BOOST=/path/to/boost_1_77_0
    

???? 二、源碼編譯與安裝

  1. 獲取源碼包

    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
    
  2. 配置編譯選項

    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 可啟用調試模式

  3. 編譯與安裝

    make -j$(nproc)   # 多核并行加速編譯
    sudo make install
    

    ? 編譯時間約 30 分鐘至數小時,取決于硬件性能


???? 三、數據庫初始化與配置

  1. 創建專用用戶與權限設置

    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
    sudo chown -R mysql:mysql /usr/local/mysql
    
  2. 初始化數據庫

    cd /usr/local/mysql
    sudo bin/mysqld --initialize --user=mysql
    

    ? 記錄臨時密碼:初始化日志末尾會生成臨時 root 密碼

  3. 配置文件與啟動腳本

    sudo cp support-files/my-default.cnf /etc/my.cnf
    sudo cp support-files/mysql.server /etc/init.d/mysqld
    sudo systemctl daemon-reload
    

???? 四、服務管理與驗證

  1. 啟動 MySQL 服務

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    
  2. 登錄與修改密碼

    mysql -uroot -p
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
    
  3. 環境變量配置(可選)
    /usr/local/mysql/bin 添加到 PATH 變量:

    echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
    source ~/.bashrc
    

???? 五、常見問題解決

  1. 依賴缺失錯誤
    ? 若編譯報錯提示缺少庫文件,重新檢查 libssl-devncurses-devel 等是否安裝

  2. Boost 路徑錯誤
    ? 確保 CMake 參數 WITH_BOOST 指向解壓后的 Boost 目錄

  3. 權限問題
    ? 數據庫目錄需屬主為 mysql 用戶,避免啟動失敗


???? 引用說明
? 依賴項安裝參考了
? Boost 庫配置來自
? 編譯參數與初始化步驟整合自










要在Debian上從源碼包編譯安裝MySQL 8.0.41,可以按照以下步驟進行:

???? 步驟一:準備工作

  1. 更新系統包
    sudo apt update && sudo apt upgrade -y
    
  2. 安裝必要的依賴包
    sudo apt install -y build-essential cmake libncurses5-dev libssl-dev
    

???? 步驟二:下載MySQL源碼包

  1. 下載MySQL 8.0.41源碼
    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.41.tar.gz
    
  2. 解壓源碼包
    tar -xzvf mysql-8.0.41.tar.gz
    cd mysql-8.0.41
    

???? 步驟三:配置編譯選項

  1. 創建構建目錄
    mkdir build && cd build
    
  2. 運行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
    

???? 步驟四:編譯和安裝

  1. 編譯源碼
    make -j $(nproc)
    
  2. 安裝MySQL
    sudo make install
    

???? 步驟五:初始化和配置MySQL

  1. 創建MySQL用戶和組
    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
    
  2. 初始化數據庫
    cd /usr/local/mysql
    sudo bin/mysqld --initialize --user=mysql
    
  3. 設置權限
    sudo chown -R mysql:mysql /usr/local/mysql
    
  4. 啟動MySQL服務
    sudo bin/mysqld_safe --user=mysql &
    
  5. 設置開機自啟(可選)
    可以參考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 生效。


???? 常見問題

  1. 依賴缺失:如果編譯失敗,檢查錯誤信息并安裝對應依賴。
  2. Boost路徑錯誤:確保 -DWITH_BOOST 指向源碼內的 boost 目錄。
  3. 權限問題:確保 /var/lib/mysqlmysql-files 目錄權限屬于 mysql 用戶。

通過以上步驟即可完成MySQL 8.0.41的源碼編譯安裝。



















本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/75787.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75787.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/75787.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Git常用問題收集

gitignore 忽略文件夾 不生效 有時候我們接手別人的項目時&#xff0c;發現有的忽略不對想要修改&#xff0c;但發現修改忽略.gitignore后無效。原因是如果某些文件已經被納入版本管理在.gitignore中忽略路徑是不起作用的&#xff0c;這時候需要先清除本地緩存&#xff0c;然后…

編程哲學——TCP可靠傳輸

TCP TCP可靠傳輸 TCP的可靠傳輸表現在 &#xff08;1&#xff09;建立連接時三次握手&#xff0c;四次揮手 有點像是這樣對話&#xff1a; ”我們開始對話吧“ ”收到“ ”好的&#xff0c;我收到你收到了“ &#xff08;2&#xff09;數據傳輸時ACK應答和超時重傳 ”我們去吃…

【MediaPlayer】基于libvlc+awtk的媒體播放器

基于libvlcawtk的媒體播放器 libvlc下載地址 awtk下載地址 代碼實現libvlc相關邏輯接口UI媒體接口實例化媒體播放器注意事項 libvlc 下載地址 可以到https://download.videolan.org/pub/videolan/vlc/去下載一個vlc版本&#xff0c;下載后其實是vlc的windows客戶端&#xff0…

pulsar中的延遲隊列使用詳解

Apache Pulsar的延遲隊列支持任意時間精度的延遲消息投遞&#xff0c;適用于金融交易、定時提醒等高時效性場景。其核心設計通過堆外內存索引隊列與持久化分片存儲實現&#xff0c;兼顧靈活性與可擴展性。以下從實現原理、使用方式、優化策略及挑戰展開解析&#xff1a; 一、核…

單鏈表的實現 | 附學生信息管理系統的實現

目錄 1.前言&#xff1a; 2.單鏈表的相關概念&#xff1a; 2.1定義&#xff1a; 2.2形式&#xff1a; 2.3特點&#xff1a; 3.常見功能及代碼 &#xff1a; 3.1創建節點&#xff1a; 3.2頭插&#xff1a; 3.3尾插&#xff1a; 3.4頭刪&#xff1a; 3.5尾刪&#xff1a; 3.6插入…

java實用工具類Localstorage

public class LocalStorageUtil {//提供ThreadLocal對象,private static ThreadLocal threadLocalnew ThreadLocal();public static Object get(){return threadLocal.get();}public static void set(Object o){threadLocal.set(o);}public static void remove(){threadLocal.r…

LLM-大語言模型淺談

目錄 核心定義 典型代表 核心原理 用途 優勢與局限 未來發展方向 LLM&#xff08;Large Language Model&#xff09;大語言模型&#xff0c;指通過海量文本數據訓練 能夠理解和生成人類語言的深度學習模型。 核心定義 一種基于深度神經網絡&#xff08;如Transformer架…

【小兔鮮】day03 Home模塊與一級分類

【小兔鮮】day03 Home模塊與一級分類 1. Home-整體結構搭建和分類實現1.1 頁面結構 2. Home-banner輪播圖功能實現 1. Home-整體結構搭建和分類實現 1.1 頁面結構 分類實現 2. Home-banner輪播圖功能實現 輪播圖實現 在HomeBanner.vue中寫出輪播圖的結構 在apis目錄下新建h…

C++中的多態和模板

#include <iostream> #include <cstdlib> #include <ctime> #include <string>using namespace std;// 武器基類 class Weapon { public:virtual ~Weapon() {}virtual string getName() const 0; // 獲取武器名稱virtual int getAtk() const 0; …

Spring 概念

Spring 是一個功能強大、靈活且廣泛使用的 Java 企業級開發框架&#xff0c;它誕生于 2003 年&#xff0c;由 Rod Johnson 創建&#xff0c;初衷是簡化 Java EE 的開發過程。 一、Spring 是什么&#xff1f; 簡單來說&#xff1a; Spring 是一個輕量級的 Java 開發框架&#…

神經網絡之損失函數

引言&#xff1a;損失函數 &#xff08;Loss Function&#xff09;是機器學習和深度學習中非常重要的一個概念。用于衡量模型的預測值與真實值之間的差異&#xff0c;從而指導模型優化其參數以最小化這種差異。 一、損失函數作用 量化誤差&#xff1a;損失函數是將預測值和真實…

Java 基礎-32-枚舉-枚舉的應用場景

在Java編程中&#xff0c;枚舉&#xff08;Enum&#xff09;提供了一種強大的方式來定義一組固定的常量。它們不僅限于簡單的用途&#xff0c;還可以包含構造函數、方法和字段等高級功能&#xff0c;使其適用于多種不同的應用場景。本文將探討幾種常見的使用枚舉的場景&#xf…

【網絡安全】安全的網絡設計

網絡設計是網絡安全的基礎&#xff0c;一個好的網絡設計可以有效的防止攻擊者的入侵。在本篇文章中&#xff0c;我們將詳細介紹如何設計一個安全的網絡&#xff0c;包括網絡架構&#xff0c;網絡設備&#xff0c;網絡策略&#xff0c;以及如何處理網絡安全事件。 一、網絡架構…

網絡安全-等級保護(等保) 0. 前言

各位伙伴好&#xff1a; 招投標總結已過去一年了&#xff0c;時間飛逝&#xff0c;一直忙于工作&#xff0c;等保相關的內容斷斷續續整理了近半年的時間&#xff0c;但一直無暇完成博客內容。 等保已經是一個成熟的體系&#xff0c;現在已進入等保2.0時代&#xff0c;相關政策…

TLS協議詳解

TLS協議 一&#xff0c;TLS協議的組成 TLS協議架構模塊分為兩層&#xff1a;TLS記錄協議&#xff0c;TLS握手協議 ① TLS記錄協議&#xff1a; 是所有子協議的基層&#xff0c;規定了TLS收發數據的基本單位。所有子協議都需要通過記錄協議發出&#xff0c;多個記錄數據可以在…

ollama更新升級及警告解決

1. 概述 在大模型業務處理中&#xff0c;需要用到gemma3 和 qwen2.5-VL&#xff0c;當前服務器的ollama版本 0.3.11&#xff0c;無法滿足要求&#xff0c;需要更新升級。 2. 實施過程 參考官網升級要求&#xff1a; curl -fsSL https://ollama.com/install.sh | sh 不知道…

ubuntu 配置固定ip

在裝服務器系統的時候&#xff0c;DHCP自動獲取ip時&#xff0c;路由可能會重新分配ip&#xff0c;為避免產生影響&#xff0c;可以關閉DHCP將主機設置為靜態ip。 系統環境 Ubuntu 22.04-Desktop 配置方式 一、如果是裝的Ubuntu圖形化&#xff08;就是可以用鼠標操作點擊應用…

套接字編程函數recv和send ,以及設置reuseaddress

recv就是去套接字讀緩沖區讀數據 阻塞模式下&#xff1a;讀緩沖區沒數據那就阻塞等待&#xff0c;若等待被打斷返回-1設置errno為EINTR 非阻塞模式下&#xff1a;讀緩沖區沒數據那就返回-1&#xff0c;設置errno為EAGAIN或EWOULDBLOCK。 若連接斷開返回0&#xff0c;讀取成功…

《C++后端開發最全面試題-從入門到Offer》目錄

當今科技行業對C++開發者的需求持續高漲,從金融科技到游戲開發,從嵌入式系統到高性能計算,C++憑借其卓越的性能和靈活性始終占據著關鍵地位。然而,成為一名優秀的C++工程師并非易事,不僅需要扎實的語言基礎,還要掌握現代C++特性、設計模式、性能優化技巧以及各種工業級開…

設計模式簡述(十)責任鏈模式

責任鏈模式 描述基本使用使用 描述 如果一個請求要經過多個類似或相關處理器的處理。 可以考慮將這些處理器添加到一個鏈上&#xff0c;讓請求逐個經過這些處理器進行處理。 通常&#xff0c;在一個業務場景下會對整個責任鏈進行初始化&#xff0c;確定這個鏈上有哪些Handler…