10 款最佳 Ping 掃描工具,協助您尋找網路上的設備
比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。
要快速排查 ownCloud 10 的「連接資料庫失敗」錯誤,最直接的方法是使用相同的 MySQL 帳戶、資料庫名稱和主機名,在 ownCloud 伺服器本身上進行測試。如果登入失敗,請先檢查 MySQL 的可用性、網路存取、憑證或權限。如果登入成功,請檢查 ownCloud 的配置config/config.php、PHP 的pdo_mysql擴展,以及 PHP 是否使用了預期的套接字或 TCP 連線。
本指南適用於在 Linux 系統上使用 MySQL 或 MariaDB 資料庫的現有 ownCloud Server 10 安裝。服務名稱和軟體包命令會因作業系統和安裝類型而異。在編輯生產環境設定之前,請務必備份配置和資料庫。切勿在問題中洩漏資料庫密碼,也不要將其貼到公開的 shell 會話記錄中。
此訊息僅為症狀,並非診斷結果。請查閱故障發生時的 ownCloud 日誌以及 Web 伺服器或 PHP 日誌。底層異常可能表示缺少驅動程式、連線被拒絕、登入被拒絕或資料庫未知。 ownCloud 的 Linux 資料庫指南需要 PHP 的pdo_mysql擴展,並指出當 MySQL 位於本地時,套接字設定至關重要。指南建議使用 MySQL 命令列客戶端測試存取。
| 資訊或線索 | 可能需要檢查的區域 |
|---|---|
could not find driver或 PDO 驅動程式錯誤 | Web PHP 執行時間未pdo_mysql啟用。 |
SQLSTATE[HY000] [2002]或“無法連線” | MySQL 已停止,主機或連接埠錯誤,防火牆阻止了 TCP,或套接字路徑錯誤。 |
Access denied for user | 密碼、帳戶主機或 MySQL 驗證設定不符。 |
Unknown database | 配置的資料庫名稱拼字錯誤、缺失或帳戶不可見。 |
具體的錯誤代碼可能因 PHP、MySQL、MariaDB 和作業系統版本而異。請將它們作為線索,並按照以下步驟確認原因。 MySQL 的「存取被拒絕」文件指出,帳戶和主機不符是常見原因。
確定 MySQL 是運行在 ownCloud 伺服器、其他機器還是容器中。在 Linux 系統上,檢查服務。常見的單元名稱是 `mysql` 和 ` mysqlmysql_name` mariadb;請使用伺服器上安裝的單元名稱:
sudo systemctl status mysql
sudo systemctl status mariadb
如果進程處於非活動狀態,請在重新啟動之前檢查日誌或資料庫錯誤日誌。配置錯誤、磁碟空間已滿、資料庫復原失敗或連接埠衝突都可能導致啟動失敗:
sudo journalctl -u mariadb --since "30 minutes ago"
sudo systemctl start mariadb
請根據實際情況替換服務名稱。服務正在運行並不代表 ownCloud 可以進行身份驗證;請繼續進行帳戶測試。
對於遠端資料庫,請從 ownCloud 主機測試 DNS 和配置的 TCP 連接埠。 MySQL 通常監聽 3306 端口,但部署可能使用其他端口:
getent hosts db.example.net
nc -vz db.example.net 3306
檢查失敗可能指向 DNS、路由、防火牆或資料庫監聽器設定問題。盡可能僅允許透過私有網路從 ownCloud 伺服器建立連線。切勿為了圖方便而將 MySQL 暴露在公共互聯網上。
在應用程式伺服器上執行 MySQL 用戶端,使用與 ownCloud 相同的資料庫名稱、使用者和目標主機。此-p選項會以私密方式提示輸入密碼,避免將密碼直接放在指令中。
mysql -u oc_app -p -h localhost owncloud
對於遠端資料庫,請將 `<hostname>` 替換localhost為其主機名稱。如果登入成功,請執行一個無害的驗證:
SELECT DATABASE(), CURRENT_USER();
SHOW TABLES;
EXIT;
這可以確認基本驗證和對所選資料庫的存取權限。如果失敗,請閱讀 MySQL 報告的確切錯誤訊息以及使用者名稱/主機名稱。 MySQL 在配對帳戶時會同時考慮使用者名稱和主機名稱。另請注意,localhost在 Linux 系統上,MySQL 通常使用 Unix 套接字,而MySQL 則127.0.0.1強制使用 TCP。請使用 ownCloud 配置中使用的相同連接方式進行測試:
mysql -u oc_app -p -h 127.0.0.1 owncloud
config/config.php檢查ownCloud 安裝目錄中的活動配置。 ownCloud 設定參考列出了資料庫類型、名稱、使用者和密碼設定;其資料庫指南也顯示了主機和表格前綴。典型的 MySQL 設定如下所示:
'dbtype' => 'mysql',
'dbname' => 'owncloud',
'dbuser' => 'oc_app',
'dbpassword' => 'REDACTED',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
檢查是否有拼字錯誤、意外的空格、過期的密碼、大小寫不一致的資料庫名稱,或主機指向錯誤的伺服器。保留檔案的其餘部分,包括實例密鑰和資料目錄。請勿用此範例取代整個配置。
編輯完成後,請使用您安裝的 PHP 二進位檔案確認該檔案是否為有效的 PHP 檔案:
php -l /var/www/owncloud/config/config.php
您的安裝路徑可能有所不同。請限制對該config.php文件(包含資料庫憑證和其他敏感值)的存取。
ownCloud 10 的資料庫指南需要pdo_mysql檢查 PHP 版本和已載入的模組:
php -v
php -m | grep -i pdo_mysql
如果缺少該模組,請為您的 PHP 版本安裝對應的 MySQL PDO 軟體包,然後重新啟動或重新載入相關的 Web 伺服器或 PHP-FPM 進程池。軟體包名稱在 Ubuntu、Debian、SUSE、Red Hat 和容器映像中可能有所不同。已為命令列 PHP 啟用的模組可能未為 Apache 或 PHP-FPM 啟用,因此也請檢查 Web 執行階段的 PHP 配置。避免留下會洩漏 PHP 配置資訊的公開診斷頁面。
在 Linux 系統上,MySQL 用戶端可能會使用 Unix 套接字localhost,而 ownCloud 則127.0.0.1使用 TCP。如果 MySQL 與 ownCloud 位於同一台機器上,請檢查 PHP 的mysql.default_socket配置是否指向資料庫伺服器實際建立的套接字檔案。將資料庫伺服器的套接字和連接埠設定與 PHP 的設定以及 ownCloud 的主機值進行比較。
如果 MySQL 是遠端的,localhost那麼指的是 ownCloud 伺服器,而不是資料庫伺服器。請設定可存取的資料庫主機名,並確保 MySQL 監聽的是預期的介面。bind-address即使本機資料庫命令可以正常運作,防火牆或僅限本地存取的設定也可能阻止遠端存取。請將存取限制在應用程式伺服器的私有位址。
MySQL 帳戶包含使用者名稱和主機名稱兩部分。因此,`username`'oc_app'@'localhost'和`host`'oc_app'@'10.0.0.25'是不同的帳戶項目。使用管理員連線來檢查可用帳戶以及與該帳戶相符的權限:
SELECT User, Host FROM mysql.user;
SHOW GRANTS FOR 'oc_app'@'localhost';
如果帳戶不存在且資料庫已存在,請建立專用帳戶,並僅授予其對 ownCloud 資料庫的權限。請將範例資料庫、主機和密碼替換為您的實際值:
CREATE USER 'oc_app'@'localhost' IDENTIFIED BY 'replace-with-a-strong-password';
GRANT ALL PRIVILEGES ON owncloud.* TO 'oc_app'@'localhost';
對於遠端資料庫,請在帳戶定義中使用應用程式伺服器的實際主機名稱。避免使用通配符主機名稱或全域權限作為權宜之計,也不要以 MySQL root 使用者身分執行 ownCloud。如果帳戶已存在,請檢查其權限並重設密碼,而不是建立重複帳戶。然後從 ownCloud 伺服器重新測試登入。
每次更改專案後,確認從 ownCloud 主機使用相同的 MySQL 命令列登入可以正常運作,Web PHP 執行時間環境已啟動pdo_mysql,並且 ownCloud 日誌中不再記錄連線異常。待實例再次可用後,重新載入網站並執行基本的讀寫操作。
如果命令列登入成功但 ownCloud 仍然失敗,請將 Web 程序使用的主機名稱、帳戶名稱、資料庫名稱和 PHP 運行時環境與正常運行的測試環境進行比較。檢查請求發生時的 Web 伺服器或 PHP-FPM 日誌。對於已安裝的伺服器,請謹慎修復其現有配置;切勿為了快速排查問題而刪除資料庫或重新安裝。
如需更多信息,請參閱ownCloud Server 10.16 資料庫配置和故障排除指南、ownCloud 10.15 配置參考以及 MySQL 官方的連接故障排除和存取被拒絕錯誤指南。服務名稱、軟體包命令和具體設定取決於您的作業系統和部署環境。
比較 10 款 ping 掃描工具,它們可用於快速發現區域網路、跨平台掃描和 IP 位址管理。了解掃描可以告訴您什麼,以及不能告訴您什麼。
比較六款網路管理工具的效能監控功能,包括 SNMP 覆蓋範圍、映射、警報、部署模型和成本權衡。
比較適用於 Windows、iPhone 和 Android 的 Wi-Fi 分析器,包括頻道擁塞、訊號覆蓋範圍、熱圖和網路故障排除工具。
比較七款免費開源的 ping 監視器,從完整的網路套件到專注於延遲探測的工具,選擇最適合可用性、丟包率和歷史記錄的工具。
了解 QoS 在網路中的意義,DSCP 標記和流量佇列如何對語音、視訊和業務應用程式進行優先排序,以及 QoS 無法解決的問題。
比較適用於 Windows 和 Linux 的可靠 SFTP 伺服器軟體,包括 OpenSSH、Bitvise、SolarWinds 和 SFTPGo。尋找最適合您的安全性和文件傳輸需求的軟體。
比較七款 IP 位址管理工具,包括子網路發現、DNS 和 DHCP 協調、網路清單和開源 IPAM。
建置實用的網路監控,提供清晰的設備覆蓋範圍、有用的效能指標、可操作的警報,並對 SolarWinds NPM、PRTG 和 OpManager 進行比較。
比較網路掃描工具,以實現快速設備發現、跨平台 IP 掃描和企業級 IPAM,並指導如何將每個選項與您的網路相符。
使用 Nmap 的 --traceroute 選項將躍點對應到授權主機,了解躍點和 RTT 輸出,並在不進行過度掃描的情況下排查缺失的回應。