首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

phpMyAdmin 安裝與配置完整教學:從下載到常見錯誤排除

     編輯:PHP 相關知識

phpMyAdmin 安裝配置全攻略:零基礎也能快速上手

phpMyAdmin 是最流行的 MySQL/MariaDB Web 管理介面。本文提供從下載、安裝、核心配置到常見錯誤(如 #1045 存取被拒)的完整解決方案,適用於 Windows/Linux/macOS 環境。

快速安裝步驟(通用)

  1. 下載:官網下載頁 選擇 phpMyAdmin-x.x.x-all-languages.zip(含所有語言)或 english 版。
  2. 解壓:解壓至 Web 伺服器文件根目錄下的資料夾,如 /var/www/html/phpmyadmin/ 或 C:\xampp\htdocs\phpmyadmin\。
  3. 重新命名配置檔:將 config.sample.inc.php 複製並重命名為 config.inc.php。
  4. 設定吹魚密鑰:編輯 config.inc.php,設定 $cfg['blowfish_secret'](32 字元隨機字串,用於 Cookie 加密)。
  5. 測試存取:瀏覽器開啟 https://localhost/phpmyadmin/,輸入 MySQL 帳密登入。

核心配置詳解 (config.inc.php)

<?php
// 基本設定
$cfg['PmaAbsoluteUri'] = '';           // 通常留空自動偵測
$cfg['ExecTimeLimit'] = 300;           // 執行時間限制(秒),0=不限制
$cfg['blowfish_secret'] = 'your_32_chars_random_string_here'; // 必填!
$cfg['DefaultLang'] = 'zh_TW';         // 預設語言
$cfg['ServerDefault'] = 1;             // 預設伺服器索引
$cfg['VersionCheck'] = true;           // 檢查更新

// 伺服器連線設定 (索引 1)
$i = 0;
$i++;
$cfg['Servers'][$i]['host'] = 'localhost';        // 主機名或 IP
$cfg['Servers'][$i]['port'] = '';                 // 埠號,留空用預設 3306
$cfg['Servers'][$i]['socket'] = '';               // Unix socket 路徑
$cfg['Servers'][$i]['auth_type'] = 'cookie';      // 認證方式:cookie|config|http|signon
$cfg['Servers'][$i]['user'] = 'root';             // config 模式時的預設使用者
$cfg['Servers'][$i]['password'] = '';             // config 模式時的密碼
$cfg['Servers'][$i]['nopassword'] = false;        // 允許無密碼登入
$cfg['Servers'][$i]['connect_type'] = 'tcp';      // tcp|socket
$cfg['Servers'][$i]['compress'] = false;          // 壓縮協定
$cfg['Servers'][$i]['controlhost'] = '';          // 控制連線主機
$cfg['Servers'][$i]['controluser'] = 'pma';       // 控制使用者 (進階功能需求)
$cfg['Servers'][$i]['controlpass'] = 'pmapass';   // 控制密碼
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';      // phpMyAdmin 設定儲存資料庫
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

// 其他常用設定
$cfg['ShowServerInfo'] = true;
$cfg['ShowPhpInfo'] = false;
$cfg['ShowChgPassword'] = true;
$cfg['ShowCreateDb'] = true;
$cfg['MaxRows'] = 50;                    // 每頁顯示行數
$cfg['Order'] = 'SMART';                 // 排序方式
$cfg['DefaultDisplay'] = 'horizontal';   // 顯示模式

認證模式選擇指南

模式適用場景優點缺點
cookie (推薦)生產環境、共享主機、多人使用密碼不寫在設定檔、支援多使用者、登出方便需 PHP session/cookie 支援
http內網、簡單部署瀏覽器原生對話框、無需 PHP session無法登出(需關閉瀏覽器)、密碼以 Base64 傳輸需 HTTPS
config本機開發、單一使用者、自動化腳本免登入、適合腳本自動化密碼明文寫在設定檔、極不安全、不支援多使用者
signon整合現有登入系統 (SSO)無縫整合應用程式登入實作複雜

常見錯誤完整排除

#1045 Access denied for user 'root'@'localhost' (using password: YES/NO)

原因:phpMyAdmin 設定的帳密與 MySQL 實際帳密不符。

解決步驟:

  1. 確認 MySQL root 密碼:mysql -u root -p 能否登入?
  2. 若忘記 root 密碼,重置方法:
    # 停止 MySQL
    systemctl stop mysql
    # 啟動跳過權限表
    mysqld_safe --skip-grant-tables &
    # 登入無密碼
    mysql -u root
    # 修改密碼
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    # 重啟 MySQL
    systemctl restart mysql
  3. 更新 config.inc.php:
$cfg['Servers'][$i]['auth_type'] = 'cookie'; // 推薦
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = ''; // cookie 模式留空,登入時輸入

#2002 / #2003 無法連線 MySQL 伺服器

  • 檢查 $cfg['Servers'][$i]['host']:localhost 走 Unix socket,127.0.0.1 走 TCP。嘗試切換。
  • 檢查 port / socket 設定是否與 MySQL 實際一致 (SHOW VARIABLES LIKE 'port'; / socket)。
  • MySQL 服務是否運行?systemctl status mysql。
  • 防火牆/SELinux 是否阻擋 3306 埠?

「無法載入 mysqli 擴充套件」

# Ubuntu/Debian
apt install php-mysqli
# CentOS/RHEL
yum install php-mysqli
# Windows php.ini
extension=mysqli
# 重啟 Apache/php-fpm

「設定儲存區未完全設定,部份功能已停用」

執行附帶 SQL 建立 phpmyadmin 資料庫與表:

# 位置:phpMyAdmin/sql/create_tables.sql
mysql -u root -p < create_tables.sql
# 並確保 config.inc.php 設定 controluser/controlpass/pmadb 正確

安全性加固建議

  1. 修改存取路徑:將資料夾改名為難猜名稱(如 pma_x7k9)。
  2. 強制 HTTPS:Apache/Nginx 設定重導向,防止密碼明文傳輸。
  3. IP 白名單限制:
# .htaccess (Apache)
Order Deny,Allow
Deny from all
Allow from 192.168.1.0/24  # 僅允許內網
Allow from 203.0.113.5     # 特定公網 IP

# Nginx
location /pma_x7k9/ {
    allow 192.168.1.0/24;
    allow 203.0.113.5;
    deny all;
    # ... php-fpm 設定
}
  1. 雙因子認證 (2FA):phpMyAdmin 內建支援 TOTP (Google Authenticator)。
  2. 定期更新:關注安全公告,及時升級版本。

Docker 一鍵部署(現代最佳實踐)

docker run -d \
  --name phpmyadmin \
  -e PMA_HOST=mysql_host \
  -e PMA_PORT=3306 \
  -e PMA_USER=root \
  -e PMA_PASSWORD=secret \
  -p 8080:80 \
  phpmyadmin/phpmyadmin:latest

# 存取:https://localhost:8080

遵循「Cookie 認證 + 強制 HTTPS + IP 白名單 + 定期更新」四大原則,即可安全、高效地使用 phpMyAdmin 管理資料庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved