排解新環境的問題時,通常會將各種運作中的元件隔離,並盡可能以簡單的方式個別測試,這很有幫助。
如果是客戶代管的 Looker 執行個體,您可以使用 Looker 伺服器上的 Telnet 建立 TCP 連線,測試 Looker 伺服器與資料庫之間的連線。使用 Telnet 的優點是不必修改設定檔,也不需要驗證。Telnet 會建立連線,否則不會。
確認資料庫可存取後,您就可以使用資料庫的內建用戶端或 Looker 等應用程式進行測試。
安裝 Telnet
部分主機可能已預先安裝 Telnet。如要測試這項功能,請在 Looker 伺服器上執行下列指令:
telnet ?
畫面應如下所示:
usage: telnet [-l user] [-a] [-s src_addr] host-name [port]
如果收到「找不到指令」錯誤訊息,請安裝 Telnet。
在 Ubuntu 上:
sudo apt-get install telnet
在 Redhat/CentOS 上:
yum install telnet
預設通訊埠
您需要知道資料庫執行的連接埠。下表列出多個平台的預設通訊埠,但資料庫可能會設定為在其他通訊埠上執行。請洽詢資料庫管理員。
平台 | 通訊埠 |
---|---|
Amazon Redshift | 5439 |
GreenPlum | 5432 |
Microsoft SQL Server (MSSQL) | 1433 |
MySQL | 3306 |
Oracle | 1521 |
PostgreSQL | 5432 |
Vertica | 5433 |
使用 Telnet 連線至資料庫
如要測試資料庫連線,請在 Looker 伺服器上執行 telnet hostname port
。舉例來說,如果您在預設通訊埠上執行 MySQL,且資料庫名稱為 mydb,則指令會是 telnet mydb 3306
。
如果連線正常運作,您會看到類似下列的內容:
Trying 10.10.10.10...
Connected to mydb.
Escape character is '^]'.
如果連線「無法」運作,您會看到類似下列的訊息:
Trying 10.10.10.10...
telnet: Unable to connect to remote host: Connection timed out
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
telnet: could not resolve mydb/telnet: Name or service not known
如果可以從 Looker 伺服器 Telnet 到資料庫伺服器的通訊埠,就能排除基本連線問題。
其他疑難排解提示
如果 Telnet 檢查失敗,請考慮下列事項:
- 主機名稱是否正確?
- 資料庫和 Looker 伺服器是否已設定為允許兩者之間的網路流量?檢查兩部主機上安裝的防火牆軟體。
- Looker 伺服器和資料庫主機之間的所有網路是否都已設定為允許網路流量?檢查防火牆和網路存取控制清單 (ACL)。
- Looker 伺服器與資料庫主機之間的所有網路是否都已正確設定,可將流量導向主機?
- 資料庫伺服器是否正在執行、監聽的通訊埠是否正確,以及是否已設定為允許來自 Looker 伺服器的連線?
如果仍無法解決問題,請聯絡 Looker 支援團隊尋求協助。