Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux mydumper 報錯 libmysqlclient_16 not defined 解決:LD_LIBRARY_PATH 引入 MySQL 函式庫路徑

編輯:關於 Linux

mydumper 多線程備份工具啟動時找不到 libmysqlclient_r.so.16 中的 gzopen 符號 (版本 libmysqlclient_16),原因是動態連結器未掃描 MySQL 安裝目錄的 lib 資料夾。解法:匯出 LD_LIBRARY_PATH 包含 /usr/local/mysql/lib 即可。

mydumper 錯誤示意圖

錯誤訊息

mydumper: relocation error: mydumper: symbol gzopen, version libmysqlclient_16 not defined in file libmysqlclient_r.so.16 with link time reference

確認函式庫存在

ls /usr/local/mysql/lib/
# libmysqlclient_r.so.16, libmysqlclient.so.16 等存在

解決方案:設定 LD_LIBRARY_PATH

臨時生效 (當前 Shell)

export LD_LIBRARY_PATH="/usr/local/mysql/lib:$LD_LIBRARY_PATH"
mydumper -h localhost -u root -p password -c -o ./backup/ -B dbname

永久生效 (所有使用者)

echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig

永久生效 (特定使用者)

echo 'export LD_LIBRARY_PATH="/usr/local/mysql/lib:$LD_LIBRARY_PATH"' >> ~/.bashrc
source ~/.bashrc

驗證

ldd $(which mydumper) | grep mysql
# 應顯示 libmysqlclient_r.so.16 => /usr/local/mysql/lib/libmysqlclient_r.so.16

補充:mydumper 常用參數

參數說明
-t, --threads執行緒數 (預設 4)
-c, --compress輸出檔案壓縮
-o, --outputdir輸出目錄
-B, --database指定資料庫
-T, --tables-list指定資料表清單檔
--regex資料表名稱正則過濾
--no-locks不加鎖讀取 (需一致性備份慎用)
Copyright © Windows教程網 All Rights Reserved