Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何与postgres建立远程连接?_Python_Database_Postgresql_Sqlalchemy_Remote Access - Fatal编程技术网

Python 如何与postgres建立远程连接?

Python 如何与postgres建立远程连接?,python,database,postgresql,sqlalchemy,remote-access,Python,Database,Postgresql,Sqlalchemy,Remote Access,我在Linux计算机上有一个postgres数据库,我想从另外两台计算机,一台mac和一台windows上访问它,我在stackoverflow和一些网上教程中搜索,但所有这些(我发现的)都显示出来了 我做了允许远程连接的事情,但我不知道如何连接到数据库,假设我想使用sqlalchemy从python脚本进行连接。 如果您告诉我如何使用terminal和cmd访问数据库,以及如何从sqlalchemy访问数据库,我将非常感谢您的帮助 我在postgresql.conf中设置listen\u ad

我在Linux计算机上有一个postgres数据库,我想从另外两台计算机,一台mac和一台windows上访问它,我在stackoverflow和一些网上教程中搜索,但所有这些(我发现的)都显示出来了

我做了允许远程连接的事情,但我不知道如何连接到数据库,假设我想使用sqlalchemy从python脚本进行连接。 如果您告诉我如何使用terminal和cmd访问数据库,以及如何从sqlalchemy访问数据库,我将非常感谢您的帮助

我在
postgresql.conf
中设置
listen\u addresses='*'
,并将
主机所有0.0.0.0/0 md5
添加到
pg\u hba.conf
要求的最后一行: 1.炼金术 2.psycopg2

使用pip安装上述软件包

pip install SQLAlchemy
pip install psycopg2
使用
psycopg2
SQLAlchemy
连接字符串示例(您可以使用python cmd进行快速测试):


我假设您已经从外部访问了
postgres
db

我还假设,您已经在
postgress
db上创建了用户和完全特权数据库名

因此,如果db拥有用户
remote
和密码
remote
,并且拥有db
mydb
的完全权限,则在远程计算机上使用以下命令可以访问

确保远程计算机也安装了postgresql server/client

psql -Uremote -h <remote-ip-address> -d my_db -Wremote
psql-Uremote-h-d my_db-Wremote

使用SqlAlchemy获取访问权限您可以参考@Kalyan Answers

我不确定我们关于从外部访问的假设是否正确,但在调查之前,我如何才能找到我的远程ip地址,我尝试使用ifconfig并查找以192.168.*.*开头的内容。如果这是查找远程ip的方式,我认为不允许db从外部访问。是的。ifconfig将显示正确的IP。您可以查看以配置远程访问
psql -Uremote -h <remote-ip-address> -d my_db -Wremote