我有一个名为 mydb_user 的 PostgreSQL 用户,他已被授予 mydb_dev 的所有权。mydb_user 已经拥有删除数据库的权限,但是我希望他在删除数据库后能够再次创建数据库。如果可能,我希望他只能再次创建一个具有相同名称 (mydb_dev) 的数据库,但如果有必要,我会满足于让他创建一个任何名称的数据库。
或者我需要获得企业版吗?
这是因为我在 MySQL 的网站上找到了这个:
如果您正在运行 MySQL 生产级系统,我们希望将您的注意力引向 MySQL 企业版的产品说明:
当我查看功能时,社区版似乎不支持交易,而企业版则支持。
如果社区版确实不适合生产,那么似乎 posgresql 可能是我的出路,因为它支持事务并且完全开源。
如果我必须更改,sql 语法是否需要更改(很多)?
我刚刚使用 Ubuntu 的突触应用程序安装了 postgresql、php5,特别是 PhpPgAdmin。PHP 运行良好,http 服务器 (lighttpd) 运行良好,我可以在命令行中执行 pg。唯一仍然是个谜的是 PhpPgAdmin - 如何启动它以使用它?我对启动 PhpPgAdmin 的正确方法一无所知;网站上的任何地方都没有对此进行解释。我尝试在 bash 命令提示符下键入 phppgadmin,然后在浏览器的地址栏中输入“ http://phppgsdmin/ ”和“ http://localhost/phppgadmin ”作为胡乱猜测 - 没有任何反应。秘密是什么?
顺便说一句,我只在本地主机上提供 http 服务,做纯粹的私有网络开发。
决定将我基于 Windows 的 DNS 服务器移至 linux。问题是我需要能够动态更新区域文件而不必重新启动绑定。似乎最流行的解决方案是为数据库服务器( postgresql、sqlite、mysql)安装绑定驱动程序,然后更新区域文件。看起来很简单,但我无法让它为我的生活工作。
我目前正在使用 Amazon Linux 发行版,但我也尝试了 RHEL 6.2 中的所有内容,但都没有成功。
我尝试了几种不同的方法。第一个是使用源代码更改来编译绑定以支持 mysql 支持http://pbraun.nethence.com/doc/net/bind-mysql.html。这与更改一起编译得很好,我没有收到任何错误,但是在运行make install所有二进制文件后被复制到 /usr/local/sbin 但我似乎无法启动我运行的守护进程service named start,它只是告诉我没有名为(没有双关语意)。其次,没有生成任何配置文件。所以我创建了一个名为.conf 的文件并将其放入 /etc/named.conf 然后运行/usr/local/sbin/named-checkconf它告诉我它找不到文件 /etc/named.conf 所以我不知道。
接下来我尝试安装包 bind-sdb 并使用 postgresql。安装的软件包
yum -qy bind bind-sdb bind-utils postgresql postgresql-server
按照http://bind-dlz.sourceforge.net/postgresql_example.html上的步骤我创建了一个新的 postgre 数据库和表等。下面是我当前的 named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost …Run Code Online (Sandbox Code Playgroud) postgresql domain-name-system bind amazon-ec2 amazon-web-services
我们正在尝试使用 ngx_postgres 模块通过 NGINX 进行基本身份验证。我们想从查询结果对中检索一个值并将其添加到 HTTP 标头中,然后将其代理到另一台服务器。
我们已成功通过 postgres 进行身份验证,但问题是将结果对传递给代理。我们目前使用的代码如下:
location = /test_auth {
internal;
postgres_escape $user $remote_user;
postgres_escape $pass $remote_passwd;
postgres_pass geo_database;
postgres_query "select user_name,contract_id,access_token from schema_name.table_name where user_name=$user and password=md5($pass);";
postgres_rewrite no_rows 401;
more_set_headers -s 401 'WWW-Authenticate: Basic realm="Restricted"';
postgres_output none;
postgres_set $query_val 0 0 required;
}
location /test/ {
auth_request /test_auth;
proxy_pass http://back_end_server/public-dev/;
proxy_set_header test $query_val;
proxy_redirect http://back_end_server/public-dev/ http://example_domain.com/;
}
Run Code Online (Sandbox Code Playgroud)
这是我们尝试过的许多不同事物的一个子集。此示例中的问题是 query_val 似乎在子请求中被销毁。当 postgres 调用不在子请求中时,我们能够成功检索查询结果对,但这会禁用我们的身份验证。
我们还在主位置尝试了一个简单的查询,然后将此数据代理到另一个位置,但它失败了。如果我们将查询结果对指向本地资源(如 index.html 文件),则查询结果对将被正确添加到头文件中,但是一旦我们尝试将其添加到 http 标头并将其发送到代理,它就不会不再存在。
对此问题的任何建议将不胜感激。
[更新]我花了一整天的时间阅读我正在使用的模块,我真的认为这是模块的相序问题。我有一种感觉,代理重写是在 postgres 身份验证子请求实际返回结果之前发生的。我会继续调查。任何帮助仍然受到赞赏。
我已经在运行 Windows 8.1(64 位)的开发人员机器上下载并安装了 PostgreSQL 9.3(64 位)。此开发人员机器需要使用代理服务器来访问 LAN 外部的主机。
StackBuilder 3.1.1 向导/安装程序从 IE 中提取代理设置,它们看起来是正确的,但是当单击“下一步”按钮时,我收到一个“堆栈生成器错误”对话框,指示:
无法打开应用程序列表: http://www.postgresql.org/applications-v2.xml 错误:无法打开指定的 URL。
我已经能够使用 IE 和 Chrome 使用安装程序最初从 IE 中提取的相同代理设置成功下载应用程序列表。
我尝试过的其他事情:
在前两种情况下,安装程序几乎立即响应上述错误消息。最后,在响应上述错误消息之前大约有 5 秒的延迟。
一个类似的问题似乎被记录为PostgreSQL 错误跟踪器上的一个错误,但没有对初始报告作出回应。
有没有人熟悉这个问题,如果是这样,在使用 Stack Builder 安装程序时发现哪些变通办法是有效的?
我正在尝试将我的 Postgres 数据库备份到另一台服务器,但我一直被拒绝访问。
我的 pg_hba.conf 文件如下所示:
# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
# Noninteractive access to all databases is required during automatic
# maintenance (custom daily cronjobs, replication, and similar tasks).
#
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 docker 配置 postgresql 安装。
FROM ubuntu:13.10
ADD . /db
# install postgres
# ...
RUN chown postgres:postgres /db -R && \
chmod 700 /db -R
USER postgres
RUN /etc/init.d/postgresql start &&\
createdb test &&\
psql -d test -f /db/all.sql
Run Code Online (Sandbox Code Playgroud)
我可以访问文件夹/db,但不能访问/db/plpgsql(其中包含由/db/all.sql 执行的文件)
我在 /db/plpgsql 上尝试了 chmod 777 但它也不起作用,权限被拒绝。
postgres@c364bdd94652:/$ ls -l | grep db
drwxrwxrwx 5 postgres postgres 4096 Jul 10 17:39 db
postgres@c364bdd94652:/$ cd db/
postgres@c364bdd94652:/db$ ls -l
-rwxrwxrwx 1 postgres postgres 2567 Jul 10 16:34 Dockerfile
-rwxrwxrwx 1 …Run Code Online (Sandbox Code Playgroud) 这是我的情况:
ALTER EXTENSION postgis UPGRADE TO '2.2.0';)。这似乎有效(在安装了 postgis 的两个数据库上都select postgis_full_version()显示POSTGIS="2.2.0 r14208" GEOS="3.5.0-CAPI-1.9.0 r4084" PROJ="Rel. 4.9.1, 04 March 2015" GDAL="GDAL 2.0.1, released 2015/09/15" LIBXML="2.9.3" LIBJSON="0.11" RASTER了),尽管旧的postgis-2.1.so留在了 lib 目录中。pg_upgrade. pg_upgrade失败:您的安装引用了新安装中缺少的可加载库。您可以将这些库添加到新安装中,或者从旧安装中删除使用它们的功能。问题库列表在文件中:loadable_libraries.txt
loadable_libraries.txt 包含:
无法加载库“$libdir/rtpostgis-2.1”错误:无法访问文件“$libdir/rtpostgis-2.1”:没有这样的文件或目录
无法加载库“$libdir/postgis-2.1”错误:无法访问文件“$libdir/postgis-2.1”:没有这样的文件或目录
我不知道为什么新版本的 Postgresql 需要旧版本的 Postgis ......它不应该被删除吗?我从 9.4 的 lib 目录中移动了旧文件postgis-2.1.so和rtpostgis-2.1.so文件,但错误仍然存在。
我还尝试针对 Postgresql 9.5beta2 …
我试图按照本指南允许远程连接到 postgres http://www.cyberciti.biz/tips/postgres-allow-remote-access-tcp-connection.html
目前我遇到了防火墙问题。
我有它的设置,所以我有一个/tmp/v4我可以修改并从中恢复我的防火墙规则。
我尝试了 2 种设置。
指南推荐的一种:
-A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 00.000.000.00 --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -s 00.000.000.00 --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
当我使用这个设置和运行nc ipofserver 5432,我得到Ncat: connection timed out
如果我尝试设置
-I INPUT -p tcp -s 00.000.000.00 --dport 5432 -j ACCEPT
-I INPUT -p tcp -s 00.000.000.00 --dport 5432 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
我运行相同的 ncat 命令,我得到 …
postgresql ×10
proxy ×2
amazon-ec2 ×1
bind ×1
centos ×1
centos7 ×1
database ×1
docker ×1
firewall ×1
installation ×1
linux ×1
mysql ×1
nginx ×1
permissions ×1
postgis ×1
psql ×1
windows ×1