云服务器网:购买云服务器和VPS必上的网站!

phpPgAdmin 常见毛病和问题的解决办法

一、安装毛病Q: 我已安装了 phpPgAdmin ,但是当我企图使用它的时候, 我得到一个毛病说我安装的 PHP 没有正确的编译数据库支持。
A: 这个信息的意思是你的 PHP 未将 PostgreSQ

一、安装毛病
Q: 我已安装了 phpPgAdmin ,但是当我企图使用它的时候,
我得到一个毛病说我安装的 PHP 没有正确的编译数据库支持。


A: 这个信息的意思是你的 PHP 未将 PostgreSQL 支持编译进去。正确的配置选项是 ‘–with-pgsql’ 。
请仔细浏览 PHP 手册以取得关于如何编译 PHP 的更详细的信息。


PostgreSQL 支持可以编译为 PHP 的动态扩大模块,
因此如果你使用的是一个预编译版本的 PHP (Linux下的RPM包或Windows下的二进制文件之类),
或许你只需要做一件事就能够了:


编辑 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 发行版上,
该 PHP 扩大已自动的在 /etc/php.d/pgsql.ini 文件中进行了配置,
只要安装 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 日志,它会告知你登陆失败的准确缘由。
编辑 PostgreSQL 的”data”目录下的 pg_hba.conf 文件,
确保你具有访问数据库服务器的正确权限。


如果你将 phpPgAdmin 安装在一个区别于 PostgreSQL 服务器所在的机器上,
另外一个可能的缘由是 PostgreSQL 在启动时没有启用 TCP/IP sockets 。
要启用它,可以编辑 postgresql.conf 文件,将以下行


#tcpip_socket = false


修改成


tcpip_socket = true


然后重启 PostgreSQL 。
[译者注]从 8.0 版本开始,原来的 virtual_host 和 tcpip_socket 配置指令已被 listen_addresses 代替。
请参阅 PostgreSQL 获得更多对 listen_addresses 指令的解释。


Q: 有些用户会得到 “Login disallowed for security” 毛病信息


A: phpPgAdmin 默许制止空密码或特定用户(pgsql, postgres, root, administrator)登陆。
在改变这个默许行动(将 config.inc.php 文件中的 $conf[‘extra_login_security’] 设置为 false)之前,
请首先仔细浏览 PostgreSQL 文档中关于客户端认证的部份,
并充分理解怎么修改 PostgreSQL 的 pg_hba.conf 配置文件以启用密码保护本地连接。


Q: 我可使用任意密码登陆!


A: PostgreSQL 默许运行于”信任模式”。意思是对本地连接不检查密码。
我们强烈建议你修改 pg_hba.conf 文件,并将登陆类型改成 ‘md5’。
注意,一旦你将’local’登陆类型修改成’md5’,你便可能需要在启动 PostgreSQL 的时候输入密码。
要避开它,可使用一个 .pgpass 文件,相关说明请参考 PostgreSQL 文档 libpq 部份。
三、其它毛病
Q: 当我通过表单向数据库输入非ASCII数据时,它被当着十六进制数或 Ӓ 格式插入。


A: 你没有使用正确的编码创建数据库。
这个问题会出现在你企图向一个 SQL_ASCII 数据库输入元音变音(umlaut),
或向 EUC-JP 数据库输入 SJIS 字符的时候。


Q: 当我 drop 并重建一个同名的表的时候,失败了。


A: 最简单的办法是使用 PostgreSQL 7.3 以上的版本。


Q: 当我浏览一个表的时候,’edit(编辑)’和’delete(删除)’链接并没有显示出来。


A: phpPgAdmin 将按顺序使用以下值作为行唯一标识符


1. 主键
2. 唯一索引(不能是部份索引或表达式索引)
3. OID 列(需要连续扫描以进行更新,除非你在 OID 列上建立了索引)


另外,唯一索引中的任何 NULL 值都会致使那一行不可编辑。一样,由于在同一张表中 OID 可能会重复,
phpPgAdmin 将会在改变那一行以落后行确认修改的会不会确切是那一行,否则将进行回滚。
四、转储相关
Q: 如何启用数据库转储功能?


A: 你需要配置 config.inc.php 文件,以指定 pg_dump 和 pg_dumpall 的位置。
这样数据库导出功能将会显示出来。


Q: 我想在 Windows 上使用 pg_dump ,我应当到哪里下载 pg_dump.exe ?


A: 你需要安装 PostgreSQL 8.0 for Windows 或更高的版本。
可以到 http://www.postgresql.org/ftp/win32/ 去下载。
安装好以后可以在 config.inc.php 中设置 pg_dump 和 pg_dumpall 的位置。


Q: 为何我不能在 SQL 窗口重新加载转储出来的 SQL 脚本?


A: 在履行 SQL 脚本时有以下限制:


* 只有上传的 SQL 脚本可以包括 COPY 命令,并且一定要使用 PHP 4.2 以上版本。


* ‘psql’ 命令,比如 ‘\connect’ 根本不会工作。


* 多行 SQL 语句一样不会工作,比如:


CREATE TABLE example (
a INTEGER
);


* 在履行脚本的进程中不能切换数据库和用户。


我们打算在将来的版本中减少这些限制,但是对 PostgreSQL 本身的限制无能为力,
因此我们推荐你使用’psql’工具来恢复完全的 SQL 转储结果。

五、其它问题

Q: 当插入行的时候,’Value(值)’ 或 ‘Expression(表达式)’ 选框是甚么意思?


A: 选择’Expression’表示你可使用函数、运算符、字段名等等,
同时你需要正确的使用引号界定字符串值。
选择’Value’则表示不管你输入的内容是甚么,都将按原样插入数据库中。


Q: 为何表的’Info(信息)’页始终不显示任何信息?


A: ‘Info’页用于显示其它表到这个表的外键和来自 PostgreSQL 的统计信息。
而状态统计程序默许状态下并未启用。要启用它请查看 postgresql.conf 文件中的 stats_* 选项。
将这些选项全部设为’true’并重启 PostgreSQL 便可。


Q: 为何我不能下载 SQL 窗口中履行的查询的结果数据?


A: 你需要选中 ‘Paginate results’ 选项以允许下载。


Q: 我想帮助 phpPgAdmin 的开发,我应当怎样做?


A: 我们非常愿意得到你的帮助!请浏览 DEVELOPERS 和 TRANSLATORS 文件。

本文来源:https://www.yuntue.com/post/152263.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注