多语言展示
当前在线:696今日阅读:19今日分享:20

pgbouncer生成用户文件的两种方式

pgbouncer是为PostgreSQL数据库设计的轻量级连接池软件,使用它可以减少PostgreSQL的连接切换压力,并且能够针对客户端进行各种限制,比较方便。但是在使用它的时候,需要配置连接他的用户名和密码。我们一起来看看怎么生成保存有用户和密码的对应用户文件。
工具/原料
1

PgBouncer

2

PostgreSQL

使用copy命令导出
1

pgbouncer配置的用户文件中的账号密码也是postgresql数据库的用户和密码,因此第一种方法是,将postgresql数据库里保存的用户和密码导出,然后进行编辑。postgresql数据库里用户和密码保存在pg_shadow表里。我们来看下,语句是:select usename,passwd from pg_shadow;结果如下图所示,可以看到默认情况下只有用户名。

2

其实这是因为里面的用户都没有设置密码,所以才没有对应的md5密文。我们设置一下密码,然后就能看见对应的密码了。如下所示,使用psql自带的\password密码给dba用户设置密码。然后就可以看到md5密文了。

4

但是这种方式生成的密码文件还不能直接使用,需要处理一下,如下所示,刚生成的文件,默认是把所有的用户都下载下来了,而我们想使用的只有dba这一个用户,因此需要删掉其他用户的记录。同时,pgbouncer要求用户文件中的用户名和md5密文都使用双引号括起来,否则不能使用,编辑好后如下所示:

5

还需要最后一步,切换到root用户,然后root用户将userlist.txt文件从postgres用户的家目录复制到/etc/pgbouncer这个配置文件目录里去。这样就可以正常使用了。

使用pgbouncer自带的mkauth.py脚本
1

使用copy命令可能略显繁琐,因此可以使用pgbouncer自带的mkauth.py脚本来操作。会稍微简单一些,首先切换到/etc/pgbouncer目录,然后使用mv命令将上面copy命令导出的userlist.txt文件备份一下。操作如下面图中所示:

2

备份完成后,在目录下可以看到mkauth.py这个可执行文件,然后还可以看到备份好的userlist.txt.bak文件。然后就可以准备使用mkauth脚本了。在使用之前,首先确认你自己安装好了psycopg2这个python模块。因此mkauth是利用这个模块来连接postgresql数据库的。如果没有安装会提示下面图一中的错误。如果出现这个no module的提示错误,就使用pip命令安装psycopg2模块,如下面图二中所示:

3

安装好以后,就可以使用mkauth脚本来生成密码文件了,mkauth脚本的基本格式是:./mkauth.py  密码文件名   连接参数这里的连接参数是一个字符串,使用双引号括起来,然后里面的键值对之间用空格隔开,不能用逗号(这个一定要注意)。如下面图中所示:如果所有的参数无误,就能够正确生成userlist.txt文件。

4

文件中,用户名和md5密码都是用双引号括起来的,不需要在做修改,但是默认也是会备份所有用户名,如果只想使用单个用户名,就需要打开userlist.txt文件,将其他的用户删掉,如下面图中所示:

注意事项
1

默认mkauth.py脚本执行命令的时候参数里会带有postgresql用户名和密码,因此可以将这个用户名和密码直接在脚本里传递

2

本人原创,转载请声明。

推荐信息