tlsv1 alert unknown ca
会失败
psql -h localhost -p 4566 -d dev -U root --set=sslmode=disable
这是可行的:
psql "port=4566 host=localhost user=root dbname=dev sslmode=disable"
为什么?为什么一个工作,而另一个不工作?--set
被忽略了吗?
这是一个错误还是一个功能?
tlsv1 alert unknown ca
会失败
psql -h localhost -p 4566 -d dev -U root --set=sslmode=disable
这是可行的:
psql "port=4566 host=localhost user=root dbname=dev sslmode=disable"
为什么?为什么一个工作,而另一个不工作?--set
被忽略了吗?
这是一个错误还是一个功能?
2条答案
按热度按时间odopli941#
--set并没有被忽略,它只是没有做任何有意义的事情。它告诉psql设置名为'sslmode'的psql变量,但是这个变量并不负责任何事情。如果你可以连接,然后运行
select :'sslmode';
,你会发现它确实被设置了,但是因为它并不负责任何事情,所以这并不重要。假设您使用的是bash,正确执行此操作的方法是:
2fjabf4q2#
https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS :
第二种方法有效.因为(sslmode=disable)是连接字符串关键字的一部分.
psql --help
会传回:同样,如果您使用
psql --help | grep ssl
,则结果为零。这意味着您不能使用simple usepsql -h localhost -p 4566 -d dev -U root --sslmode=disable
。jjanes的answer之所以有效,是因为:https://www.postgresql.org/docs/current/libpq-envars.html