PgBouncer config常见错误

简介: PgBouncer config

PgBouncer config

https://www.pgbouncer.org/config.html

[pg10@db01 data]$ psql -h db01 -p5766 -d test01 -U admin
psql: ERROR: no such user: admin

用户名称未配置在密码文件之中(auth_file)。

[pg10@db01 data]$ psql -h db01 -p5766 -d test01 -U test01
Password for user test01:
psql: ERROR: SASL authentication failed //scram-sha-256认证密码错误信息。

[pg10@db01 data]$ psql -h db01 -p5766 -d test01 -U test01
Password for user test01:
psql: ERROR: password authentication failed //md5认证密码错误信息。

密码错误

[pg10@db01 data]$ psql -h db01 -p5766 -d test
psql: ERROR: no such database: test

数据库名称错误,检查pgbouncer.ini查看数据库名称配置信息。

测试用例:

配置文件参考:

[pg10@db01 pgbouncer]$ cat pgbouncer.ini
[databases]
;;; 未设置用户密码,需要使用auth_file密码连接数据。
test01=host=db01 port=5432 dbname=test01
[pgbouncer]
logfile = /home/pg10/pgbouncer/pgbouncer.log
pidfile = /home/pg10/pgbouncer/pgbouncer.pid
auth_type = md5
auth_file = /data/pg
listen_addr = *
listen_port = 5766

密码文件

select usename,passwd from pg_shadow;

[pg10@db01 pgbouncer]$ cat /data/pg
"test01" "123456"

数据库建立test01数据库和用户

5432数据库建立测试用户和数据库:

create user test01 with password '123456';
create database test01 owner test01;
grant all privileges on database test01 to test01;

连接池连接测试:

-h 指定ip地址
-p 连接池端口
-d 数据库连接描述名称
[pg10@db01 data]$ psql -h db01 -p5766 -d test01 -U test01
Password for user test01:
psql (10.14)
Type "help" for help.
test01=>

数据库连接符号*

The database name “pgbouncer” is reserved for the admin console and cannot be used as a key here.

“*” acts as a fallback database: If the exact name does not exist, its value is taken as connection string for the requested database. For example, if there is an entry (and no other overriding entries)

  • = host=foo

then a connection to PgBouncer specifying a database “bar” will effectively behave as if an entry
bar = host=foo dbname=bar
exists (taking advantage of the default for dbname being the client-side database name; see below).
Such automatically created database entries are cleaned up if they stay idle longer than the time specified by the autodb_idle_timeout parameter.

If user= is set, all connections to the destination database will be done with the specified user, meaning that there will be only one pool for this database.
password
If no password is specified here, the password from the auth_file or auth_query will be used.

数据连接的几种方式:
appdb=host=db01 port=5666 dbname=appdb
appdb01=host=db01 port=5666 user=appuser password=1qaz@WSX dbname=appdb01
*=host=db01 port=5432

databases配置比较简单,每行由key=value对组成,其中key为对外数据库名称,value由多个以空格隔开的key=value对的连接串及相关参数对组成。

host: 后端数据库的主机名或者IP地址
port: 后端数据库监听端口
dbname: 后端数据库名称
user: 连接后端数据库的用户名
password: 连接后端数据库的密码
pool_size: 配置连接池的大小,如果没有配置此项,连接池大小将使用[pgbouncer]部分中default_pool_size配置的值
connect_query: 在连接使用之前执行一个SQL语句,用于探测此连接是否正常.如果执行该语句出错,则选择另外一个连接
max_db_connections: 配置数据库范围的最大值(即数据库中的所有池都不会有这么多的服务器连接
client_encoding: 制定客户端字符集编码
datestyle: 指定日志类型参数
timezone: 指定时区
注意:如果在连接串中没有指定user和password,那么pgbouncer将使用给客户端连接pgbouncer时的用户名和密码来连接后端数据库,并为每个不同的用户建立一个连接池;
如果连接中指定了user和password,pgbouncer将使用这里设置的用户名和密码来连接后端数据库,这样对使用这项配置的数据库来说,就只有一个连接池了.

[pg10@db01 pgbouncer]$ cat pgbouncer.ini
[databases]
;;; 数据连接符号*,匹配所有数据库。
*=host=db01 port=5432
[pgbouncer]
logfile = /home/pg10/pgbouncer/pgbouncer.log
pidfile = /home/pg10/pgbouncer/pgbouncer.pid
auth_type = md5
auth_file = /data/pg
listen_addr = *
listen_port = 5766

匹配所有数据库,客户端数据库数据库名称和源数据库一致(pgbouncer把数据库信息发送到数据库服务器认证)
[pg10@db01 data]$ psql -h db01 -p5766 -d sadfsdf -U test01
Password for user test01:
psql: ERROR: database "sadfsdf" does not exist
[pg10@db01 data]$ psql -h db01 -p5766 -d sadfsdf -U test01
psql: ERROR: pgbouncer cannot connect to server

需要输入正确数据库名称和用户名:

[pg10@db01 data]$ psql -h db01 -p5766 -d test01 -U test01
Password for user test01:
psql (10.14)
Type "help" for help.
test01=> \q

相关文章
|
8月前
|
运维 监控 Java
nacos常见问题之获取配置文件的时候报错user not found如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
1835 2
|
3月前
|
存储 缓存 网络协议
搭建dns服务常见报错--查看/etc/named.conf没有错误日志信息却显示出错(/etc/named.conf:49: missing ‘;‘ before ‘include‘)及dns介绍
搭建dns服务常见报错--查看/etc/named.conf没有错误日志信息却显示出错(/etc/named.conf:49: missing ‘;‘ before ‘include‘)及dns介绍
226 0
|
8月前
|
SQL 安全 网络安全
解决:provider:Named Pipes Provider error:40无法打开SQL Server的连接 的3种方式
解决:provider:Named Pipes Provider error:40无法打开SQL Server的连接 的3种方式
1278 0
|
XML 移动开发 Java
log4j.properties配置详解与实例-全部测试通过
log4j.properties配置详解与实例-全部测试通过
95 0
|
SQL 存储 网络协议
故障解决:Sql Server 2008 error 40出现连接错误的解决方法
经常会有小伙伴反馈连接错误,今天就给大家重现一下这个错误和解决方法吧,下次如果哪个小伙伴也遇到类似问题可以直接转发这篇文章给他。好了我们开始实验。
故障解决:Sql Server 2008 error 40出现连接错误的解决方法
|
网络安全 数据安全/隐私保护
Greenplum 大集群应该调整的sshd_config配置
背景 Greenplum是MPP数据库,所以大的集群可能涉及很多的主机以及很多的segments。 Greenplum的很多管理脚本都会涉及ssh的连接,通过SSH进行远程的管理或命令的调用。 因此如果有并发的管理任务,会建立很多的SSH会话。 但是默认情况下Linux的sshd
8078 0
|
Arthas Java 测试技术
Alibaba Arthas 3.1.2版本:增加logger/heapdump/vmoption命令,支持tunnel server
![Arthas](https://alibaba.github.io/arthas/_images/arthas.png) `Arthas`是Alibaba开源的Java诊断工具,深受开发者喜爱。 * Github: https://github.com/alibaba/arthas * 文档:https://alibaba.github.io/arthas Arthas
882 0
|
关系型数据库 负载均衡 PostgreSQL
|
监控
zabbix server配置参数调优
StartPollers=160 StartPollersUnreachable=80 StartTrappers=20 StartPingers=100 StartDiscoverers=120 CacheSize=1024M StartDBSync...
1500 0

热门文章

最新文章