一、安裝錯誤
Q: 我已經(jīng)安裝了 phpPgAdmin ,但是當(dāng)我企圖使用它的時候,
我得到一個錯誤說我安裝的 PHP 沒有正確的編譯數(shù)據(jù)庫支持。
A: 這個信息的意思是你的 PHP 沒有將 PostgreSQL 支持編譯進(jìn)去。正確的配置選項是 '--with-pgsql' 。
請仔細(xì)閱讀 PHP 手冊以獲得關(guān)于如何編譯 PHP 的更詳細(xì)的信息。
PostgreSQL 支持可以編譯為 PHP 的動態(tài)擴(kuò)展模塊,
因此如果你使用的是一個預(yù)編譯版本的 PHP (Linux下的RPM包或Windows下的二進(jìn)制文件之類),
也許你只需要做一件事就可以了:
編輯 php.ini 文件并取消如下兩行的注釋:
(Windows下通常位于 C:/WINDOWS 或 C:/WINNT 目錄,Linux 下通常位于 /etc/php.ini)
;extension=php_pgsql.dll ;Windows
;extension=pgsql.so ;Linux
使它變成:
extension=php_pgsql.dll ;Windows
extension=pgsql.so ;Linux
在基于 Red Hat 或 Fedora 的 Linux 發(fā)行版上,
該 PHP 擴(kuò)展已經(jīng)自動的在 /etc/php.d/pgsql.ini 文件中進(jìn)行了配置,
只要安裝 php-pgsql 軟件包即可。
Q: 在 Windows 上使用 phpPgAdmin 時,我得到一個如下警告信息:
"Warning: session_start() [function.session-start]:
open(/tmp/sess_5a401ef1e67fb7a176a95236116fe348, O_RDWR) failed"
A: 你需要修改你的 PHP.INI 文件(通常位于 c:/windows 目錄)并將如下行
session.save_path = "/tmp"
修改為
session.save_path = "c:/windows/temp"
并確保 c:/windows/temp 目錄確實存在。
二、登陸錯誤
Q: 我總是得到一個"Login failed",我確定我使用了正確的用戶名和密碼!
A: 檢查一下 PostgreSQL 日志,它會告訴你登陸失敗的準(zhǔn)確原因。
編輯 PostgreSQL 的"data"目錄下的 pg_hba.conf 文件,
確保你擁有訪問數(shù)據(jù)庫服務(wù)器的正確權(quán)限。
如果你將 phpPgAdmin 安裝在一個不同于 PostgreSQL 服務(wù)器所在的機(jī)器上,
另一個可能的原因是 PostgreSQL 在啟動時沒有啟用 TCP/IP sockets 。
要啟用它,可以編輯 postgresql.conf 文件,將如下行
#tcpip_socket = false
修改為
tcpip_socket = true
然后重啟 PostgreSQL 。
[譯者注]從 8.0 版本開始,原來的 virtual_host 和 tcpip_socket 配置指令已經(jīng)被 listen_addresses 代替。
請參閱 PostgreSQL 獲取更多對 listen_addresses 指令的解釋。
Q: 有些用戶會得到 "Login disallowed for security" 錯誤信息
A: phpPgAdmin 默認(rèn)禁止空密碼或特定用戶(pgsql, postgres, root, administrator)登陸。
在改變這個默認(rèn)行為(將 config.inc.php 文件中的 $conf['extra_login_security'] 設(shè)置為 false)之前,
請首先仔細(xì)閱讀 PostgreSQL 文檔中關(guān)于客戶端認(rèn)證的部分,
并充分理解如何修改 PostgreSQL 的 pg_hba.conf 配置文件以啟用密碼保護(hù)本地連接。
Q: 我可以使用任意密碼登陸!
A: PostgreSQL 默認(rèn)運(yùn)行于"信任模式"。意思是對于本地連接不檢查密碼。
我們強(qiáng)烈建議你修改 pg_hba.conf 文件,并將登陸類型改為 'md5'。
注意,一旦你將'local'登陸類型修改為'md5',你就可能需要在啟動 PostgreSQL 的時候輸入密碼。
要避開它,可以使用一個 .pgpass 文件,相關(guān)說明請參考 PostgreSQL 文檔 libpq 部分。
三、其它錯誤
Q: 當(dāng)我通過表單向數(shù)據(jù)庫輸入非ASCII數(shù)據(jù)時,它被當(dāng)著十六進(jìn)制數(shù)或 ? 格式插入。
A: 你沒有使用正確的編碼創(chuàng)建數(shù)據(jù)庫。
這個問題會出現(xiàn)在你企圖向一個 SQL_ASCII 數(shù)據(jù)庫輸入元音變音(umlaut),
或者向 EUC-JP 數(shù)據(jù)庫輸入 SJIS 字符的時候。
Q: 當(dāng)我 drop 并重建一個同名的表的時候,失敗了。
A: 最簡單的辦法是使用 PostgreSQL 7.3 以上的版本。
Q: 當(dāng)我瀏覽一個表的時候,'edit(編輯)'和'delete(刪除)'鏈接并沒有顯示出來。
A: phpPgAdmin 將按順序使用如下值作為行唯一標(biāo)識符
1. 主鍵
2. 唯一索引(不能是部分索引或表達(dá)式索引)
3. OID 列(需要連續(xù)掃描以進(jìn)行更新,除非你在 OID 列上建立了索引)
此外,唯一索引中的任何 NULL 值都會導(dǎo)致那一行不可編輯。同樣,因為在同一張表中 OID 可能會重復(fù),
phpPgAdmin 將會在改變那一行以后進(jìn)行確認(rèn)修改的是否確實是那一行,否則將進(jìn)行回滾。
四、轉(zhuǎn)儲相關(guān)
Q: 如何啟用數(shù)據(jù)庫轉(zhuǎn)儲功能?
A: 你需要配置 config.inc.php 文件,以指定 pg_dump 和 pg_dumpall 的位置。
這樣數(shù)據(jù)庫導(dǎo)出功能將會顯示出來。
Q: 我想在 Windows 上使用 pg_dump ,我應(yīng)當(dāng)?shù)侥睦锵螺d pg_dump.exe ?
A: 你需要安裝 PostgreSQL 8.0 for Windows 或更高的版本。
可以到 http://www.postgresql.org/ftp/win32/ 去下載。
安裝好以后可以在 config.inc.php 中設(shè)置 pg_dump 和 pg_dumpall 的位置。
Q: 為什么我不能在 SQL 窗口重新加載轉(zhuǎn)儲出來的 SQL 腳本?
A: 在執(zhí)行 SQL 腳本時有如下限制:
* 只有上傳的 SQL 腳本可以包含 COPY 命令,并且必須使用 PHP 4.2 以上版本。
* 'psql' 命令,比如 '/connect' 根本不會工作。
* 多行 SQL 語句同樣不會工作,比如:
CREATE TABLE example (
a INTEGER
);
* 在執(zhí)行腳本的過程中不能切換數(shù)據(jù)庫和用戶。
我們打算在將來的版本中減少這些限制,但是對于 PostgreSQL 本身的限制無能為力,
因此我們推薦你使用'psql'工具來恢復(fù)完整的 SQL 轉(zhuǎn)儲結(jié)果。
五、其它問題
Q: 當(dāng)插入行的時候,'Value(值)' 或 'Expression(表達(dá)式)' 選框是什么意思?
A: 選擇'Expression'表示你可以使用函數(shù)、運(yùn)算符、字段名等等,
同時你需要正確的使用引號界定字符串值。
選擇'Value'則表示無論你輸入的內(nèi)容是什么,都將按原樣插入數(shù)據(jù)庫中。
Q: 為什么表的'Info(信息)'頁始終不顯示任何信息?
A: 'Info'頁用于顯示其它表到這個表的外鍵以及來自 PostgreSQL 的統(tǒng)計信息。
而狀態(tài)統(tǒng)計程序默認(rèn)狀態(tài)下并未啟用。要啟用它請查看 postgresql.conf 文件中的 stats_* 選項。
將這些選項全部設(shè)為'true'并重啟 PostgreSQL 即可。
Q: 為什么我不能下載 SQL 窗口中執(zhí)行的查詢的結(jié)果數(shù)據(jù)?
A: 你需要選中 'Paginate results' 選項以允許下載。
Q: 我想幫助 phpPgAdmin 的開發(fā),我應(yīng)當(dāng)怎么做?
A: 我們非常愿意得到你的幫助!請閱讀 DEVELOPERS 和 TRANSLATORS 文件。
新聞熱點(diǎn)
疑難解答
圖片精選