Articles of postgresql

我可以在pg_hba.conf中为同一PostgreSQL本地用户同时启用peer和md5身份validation吗?

我想让一个PostgreSQL(超级)用户使用“peer”或者“md5”authentication方法进行authentication,在这两种情况下最好使用本地Unix域套接字。 问题是pg_hba.conf中条目的顺序很重要,第一个匹配将被应用。 我拥有的: # TYPE DATABASE USER ADDRESS METHOD local all harold peer local all all md5 我想要什么(无效的语法): # TYPE DATABASE USER ADDRESS METHOD local all harold peer-or-md5 local all all md5 以下是关于我们希望在以下环境中使用的环境的更多详细信息: 在这个特定的服务器上,所有的数据库都比较小(每个数据小于10MB)并且是纯只读的。 他们每晚都被哈罗德超级用户抛弃和重新创build。 harold也是一个系统帐户,所以“peer”对于无密码的cronjobs等工作很好。然后有一个访问数据库的web界面:这使用md5authentication(系统用户是web服务器,pg用户名,密码和db名称是由访客)。 现在我想让harold用户通过web界面login。 这是因为harold的“同伴”设置而失败的。 目前的解决方法是让web界面通过TCP连接,使用 # TYPE DATABASE USER ADDRESS METHOD host all all 127.0.0.1/32 md5 host all all ::1/128 md5 […]

尽pipe可用内存(caching)

尽pipe将近一半的内存用于FScaching,但我们仍然遇到了OOM杀手。 我们已经每分钟logging一次内存统计信息(按顶部报告),但似乎有很多的可用性。 … Mem: 15339640k total, 15268304k used, 71336k free, 3152k buffers Swap: 0k total, 0k used, 0k free, 6608384k cached Mem: 15339640k total, 14855280k used, 484360k free, 13748k buffers Swap: 0k total, 0k used, 0k free, 6481852k cached [OOM killer: postgres killed] Mem: 15339640k total, 8212200k used, 7127440k free, 32776k buffers Swap: 0k total, […]

无法连接到VirtualBox客户端上的PostgreSQL

当我尝试从主机系统上的PostgreSQL客户端连接到VirtualBox客户系统上的PostgreSQL服务器时,出现“连接尝试失败”消息。 主机系统是Windows XP。 我正在运行VirtualBox 3.1.2。 客户系统是Ubuntu 9.10 Karmic Koala和PostgreSQL 8.4。 我已经在VirtualBox中转发了端口5432,如手册和本文中所述。 当我运行vboxmanage getextradata vmname enumerate ,我得到这些条目(除其他外): Key: VBoxInternal/Devices/e1000/0/LUN#0/Config/pgsql/GuestPort, Value: 5432 Key: VBoxInternal/Devices/e1000/0/LUN#0/Config/pgsql/HostPort, Value: 5432 Key: VBoxInternal/Devices/e1000/0/LUN#0/Config/pgsql/Protocol, Value: TCP 我使用这些条目在/etc/postgresql/8.4/main/pg_hba.conf中configuration了PostgreSQL安全性: # IPv4 local connections: host all all 127.0.0.1/32 md5 host all all 192.168.1.0/24 md5 host all all 10.0.2.2/32 md5 然后我用sudo /etc/init.d/postgresql-8.4 reload加载PostgreSQL。 仅出于诊断目的 ,我禁用了我的Windows防火墙和我的Ubuntu防火墙( sudo ufw […]

PostgreSQL扩展到64核心?

在这篇“ 计算机世界”文章中 ,它指定PostgreSQL可以扩展到64核心限制。这是否意味着一个64核心的多核处理器? 还是多核处理器较less? 我之所以问,是因为我正在试图找出PostgreSQL可以扩展到多less处理器,但当然这可能仅限于处理器的types。 但是,我一直在其他数据库(例如Microsoft SQL Server)中发现其他数据库的统计信息,指出它可以扩展到320个逻辑处理器,而不指定它们的内核数量。 这是一个非常模糊的统计? 任何想法将不胜感激。 谢谢!

通过命令行连接到MySQL而不需要root密码

我正在为一些任务构build一个Bash脚本。 其中一个任务就是在相同的bash脚本中创build一个MySQL数据库。 我现在正在做的是创build两个variables:一个用于存储用户名,另一个用于存储密码。 这是我的脚本的相关部分: MYSQL_USER=root MYSQL_PASS=mypass_goes_here touch /tmp/$PROY.sql && echo "CREATE DATABASE $DB_NAME;" > /tmp/script.sql mysql –user=$MYSQL_USER –password="$MYSQL_PASS" < /tmp/script.sql rm -rf /tmp/script.sql 但总是得到一个错误,说没有密码的用户root访问被拒绝,我做错了什么? 我需要为PostgreSQL做同样的事情。

在mysql命令行程序中修复Control-C?

在mysql命令行中,按下Control-C将取消程序,并将您带回bash。 在psql ,用于postgres,它会杀死当前的查询,并不会停止psql程序。 有什么办法可以在mysql程序中获得Control-C的psql样式行为吗? 我不断发现自己按习惯控制C ,并不得不重新login到MySQL。 控制C不会杀死bash,并在您按下时将其注销。 我认为这是一件好事。 Control-C意味着“停止你在做什么”。

configuration更改后重新加载PostgreSQL

我已经对pg_hba.conf进行了一些更改,我希望它们能够起作用。 我发现有几个地方,人们说我可以告诉PostgreSQL重新加载,但有几种不同的技术列出,并没有一个为我工作。 我find的最权威的参考是pg_ctl命令,但是我不确定我的PGDATA文件夹在哪里。 我会继续寻找。 我在Ubuntu 8.10上运行PostgreSQL 8.3。

如何计算PostgreSQL的max_connections和pgbouncer的default_pool_size?

是否有规则或我可以用来计算max_connections , default_pool_size和max_client_conn一个好的数字? 默认值是奇数。 PostgreSQL默认为max_connections = 100,而pgbouncer默认为default_pool_size = 20。 不应该default_pool_size总是高于max_connections? 否则,有什么意义? 我认为pgbouncer是为了让我们通过降低开销(通过重用PostgreSQL的连接)来处理更多的连接。 我很困惑。 我正在寻找类似于在PostgreSQL wiki中find的build议,比如“这个参数应该是你内存的50%”。 我记得有一个MySQL的电子表格,可以让你计算这些参数。 对于PostgreSQL / pgbouncer来说,这将是非常棒的。

PostgreSQL 9:在镜像上的主要复制上清空表吗?

运行PostgreSQL 9.0.1,使用stream式复制保持一个只读镜像实例是最新的。 除了自动真空守护程序没有抽真空的less数几个表之外,主要是自动真空,以减less工作时间IO。 这些表是“物化视图”。 在午夜的每个夜晚,我们在数据库上运行一个真空,以便清理从自动真空排除的那些表格。 我想知道如果这个过程复制到镜子,或者如果我需要在镜子上设置真空?

无法连接到公共postgresql rds实例

我在VPC中创build了一个基本的testingPostgreSQL RDS实例,该实例具有单个公有子网,并且可以通过公共互联网进行连接。 它使用默认的安全组,这是开放的端口5432.当我尝试连接,它失败。 我必须错过一些非常简单的事情 – 但是我很迷茫。 这里是数据库设置,请注意它被标记为Publicly Accessible : 这里是安全组设置,注意它是全开的(在RDS设置中,通过端点旁边的绿色“授权”提示确认): 这是我试图用来连接的命令: psql –host=myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com \ –port=5432 –username=masteruser –password –dbname=testdb 这是我从Yosemite MacBook Pro连接时得到的结果(注意,它是parsing为54. * ip地址): psql: could not connect to server: Operation timed out Is the server running on host "myinstance.xxxxxxxxxx.us-east-1.rds.amazonaws.com" (54.xxx.xxx.xxx) and accepting TCP/IP connections on port 5432? 我没有启用任何types的防火墙,并且能够连接到其他提供者(例如Heroku)上的公共PostgreSQL实例。 任何疑难解答提示将非常感激,因为我在这里非常困难。 更新 根据评论,这里是默认VPC的入站ACL规则: