在 Linux 終端輸入 mysql 提示 command not found,本質是 mysql 可執行文件所在目錄未包含在環境變量 PATH 中。本文提供三種修復方案,按推薦順序排列。
/usr/bin(最快、最通用)# 1. 確認 mysql 實際路徑
find / -name mysql -type f 2>/dev/null | grep bin/mysql$
# 輸出示例:/usr/local/mysql/bin/mysql
# 2. 創建軟鏈接(需 root 權限)
ln -sf /usr/local/mysql/bin/mysql /usr/bin/mysql
# 3. 同理處理 mysqladmin、mysqldump 等常用工具
ln -sf /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
ln -sf /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump
-f 強制覆蓋同名文件,-s 創建符號鏈接。驗證:which mysql 應輸出 /usr/bin/mysql。
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc
source ~/.bashrc
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile
cat > /etc/profile.d/mysql.sh <<'EOF'
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
EOF
chmod +x /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
重新登錄或 source /etc/profile 生效。此法便於統一管理、協同部署。
/usr/local/mysql/bin/mysql -u root -p
/usr/local/mysql/bin/mysqldump -u root -p db_name > backup.sql
適用於定時任務、部署腳本中硬編碼路徑,避免環境變量依賴。
# 檢查是否生效
which mysql
mysql --version
# 若仍報錯,檢查:
ls -l /usr/local/mysql/bin/mysql # 文件是否存在、有執行權限
file /usr/local/mysql/bin/mysql # 確認架構匹配(ELF 64-bit LSB executable, x86-64)
| 安裝方式 | 典型二進制目錄 |
|---|---|
| 官方 RPM/DEB | /usr/bin/ (通常已在 PATH,無此問題) |
| 官方二進制壓縮包 | /usr/local/mysql/bin/ |
源碼編譯 --prefix | /usr/local/mysql/bin/ 或自定義目錄 |
| Docker 容器 | 容器內 /usr/bin/,宿主機無需修復 |
| 寶塔/lnmp 一鍵包 | /www/server/mysql/bin/ |
生產環境推薦方案二(/etc/profile.d/mysql.sh),標準、可維護、多用戶生效;臨時調試用方案一(軟鏈接) 最快。核心動作只有一個:讓 Shell 能在 PATH 目錄中找到 mysql 可執行文件。