ITPub博客

首页 > > > 配置postgresql并远程登录(集)

配置postgresql并远程登录(集)

作者:浪花小雨滴 时间:2020-06-17 16:48:47 0 删除 编辑

1、Postgres数据库忘记密码,三个步骤解决(windows下)

一、修改data目录下的 pg_hba.conf 文件

将以下这行

host    all             all             127.0.0.1/32            md5

改为如下:

host    all             all             127.0.0.1/32            trust

 

二、运行cmd,进入postgres安装路径的bin目录,运行如下命令:

psql -U postgres

 

postgres=# alter user postgres with password '你要设置的密码';

 

postgres=# \q

 

三、修改data目录下的 pg_hba.conf 文件

将以下这行

host    all             all             127.0.0.1/32            trust

改为如下:

host    all             all             127.0.0.1/32            md5

重新启动postgres
————————————————
版权声明:本文为CSDN博主「rick_123」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rick_123/article/details/7000622

2、允许外部访问Windows本机的指定端口

背景:目前公司有一台公网Windows服务器,有公网IP和内网IP,防火墙已开启
需求:9999端口需要对外开放
方案:在防火墙的入站规则里添加一条规则,使外部能够访问9999端口
问题:添加好规则后,从外部telnet服务器上的9999端口并不通
解决办法:在创建入站规则的时候要指定本机地址,不是只指定端口就可以了,切记切记,步骤如下
                  控制面板--系统和安全--Windows防火墙--高级设置--入站规则--新建规则--端口--特定本地端口(输入要开放的端口)--允许连接--下一步--完成
                  右键刚刚建立的入站规则--属性--作用域--本地IP地址--下列IP地址--输入IP地址即可(意思就是你想要通过哪个IP开放这个端口)

3、【Postgres】PostgreSQL配置远程连接


1、开启相应的防火墙端口,缺省是5432
2、访问权限配置,D:\Program Files (x86)\PostgreSQL\9.2\data/pg_hba.conf中加入如下配置,开启远程访问




3、监听机器配置,D:\Program Files (x86)\PostgreSQL\9.2\data/postgresql.conf中更改默认配置,监听所有IP地址



装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。

配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf。

pg_hba.conf:配置对数据库的访问权限,

postgresql.conf:配置PostgreSQL数据库服务器的相应的参数。

下面 介绍配置的步骤:

1.修改pg_hba.conf文件,配置用户的访问权限(#开头的行是注释内容):

# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5
# IPv6 local connections:
host all all ::1/128 trust
其中,第7条是新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。

其中,数字24是子网掩码,表示允许192.168.1.0--192.168.1.255的计算机访问!

以上是网上检测结果,没有检验其正确性。不过一般的更改,不需要特别严格的权限控制时,可以直接将第7行,IPv4中换成

host all all 0.0.0.0/0 trust 即可。

2.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。

定位到#listen_addresses=’localhost’。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请 求。

将行开头都#去掉,将行内容修改为listen_addresses=’*'来允许数据库服务器监听来自任何主机的连接请求


远程使用Navicat Premium 12登录指定ip地址即可。



如何在服务器模式下安装和配置pgAdmin 4
2018-11-13阅读 1.6K0

介绍
pgAdmin是PostgreSQL及其相关数据库管理系统的开源管理和开发平台。用Python和jQuery编写,它支持PostgreSQL中的所有功能。您可以使用pgAdmin执行从编写基本SQL查询到监视数据库和配置高级数据库体系结构的所有操作。
在本教程中,我们将介绍在Ubuntu 18.04服务器上安装和配置最新版本的pgAdmin,通过Web浏览器访问pgAdmin,并将其连接到服务器上的PostgreSQL数据库的过程。
准备
要完成本教程,您需要:

第1步 - 安装pgAdmin及其依赖项
在撰写本文时,最新版本的pgAdmin是pgAdmin 4,而通过官方Ubuntu存储库提供的最新版本是pgAdmin 3.不再支持pgAdmin 3,项目维护人员建议安装pgAdmin 4。在此步骤中,我们将介绍在虚拟环境中安装最新版本的pgAdmin 4的过程(根据项目开发团队的建议)并使用apt安装其依赖项。
首先,如果您最近没有这样做,请更新服务器的包索引:
sudo apt update
接下来,安装以下依赖项。这些包括libgmp3-dev(一个多精度算术库); libpq-dev(它包括头文件和一个有助于与PostgreSQL后端通信的静态库); libapache2-mod-wsgi-py3(一个Apache模块),允许您在Apache中托管基于Python的Web应用程序:
sudo apt install libgmp3-dev libpq-dev libapache2-mod-wsgi-py3
在此之后,创建一些目录,其中pgAdmin将存储其会话数据,存储数据和日志:
sudo mkdir -p /var/lib/pgadmin4/sessions sudo mkdir /var/lib/pgadmin4/storage sudo mkdir /var/log/pgadmin4
然后,将这些目录的所有权更改为非root用户和组。这是必要的,因为它们目前由root用户拥有,但我们将从非root用户拥有的虚拟环境安装pgAdmin,安装过程涉及在这些目录中创建一些文件。但是,在安装之后,我们会将所有权更改为www-data用户和组,以便将其提供给Web:
sudo chown -R sammy:sammy /var/lib/pgadmin4 sudo chown -R sammy:sammy /var/log/pgadmin4
接下来,打开您的虚拟环境。导航到编程环境所在的目录并激活它。遵循必备Python 3教程的命名约定,我们将转到environments目录并激活my_env环境:
cd environments/ source my_env/bin/activate
然后,将pgAdmin 4源代码下载到您的计算机上。要查找最新版本的源代码,请导航至pgAdmin 4(Python Wheel)下载页面,然后单击最新版本的链接(v3.4,撰写本文时)。这将带您进入PostgreSQL网站上的下载页面。在那里,复制以.whl- 结尾的文件链接- 用于Python发行版的标准构建包格式。然后返回终端并运行以下wget命令,确保将链接替换为从PostgreSQL站点复制的链接,该链接将.whl文件下载到您的服务器:
wget ftp.postgresql.org/pub/
接下来安装wheel包,参考执行车轮包装标准。这个包是一个Python库,用作构建轮子的扩展,包括一个用于处理.whl文件的命令行工具:
python -m pip install wheel
然后使用以下命令安装pgAdmin 4软件包:
python -m pip install pgadmin4-3.4-py2.py3-none-any.whl
这需要安装pgAdmin及其依赖项。但是,在将其连接到数据库之前,您需要对程序的配置进行一些更改。
第2步 - 配置pgAdmin 4
虽然已在服务器上安装了pgAdmin,但仍需要执行几个步骤,以确保它具有允许其正确提供Web界面所需的权限和配置。
pgAdmin的主配置文件config.py,它将在任何其他配置文件之前被读取。其内容可用作可在pgAdmin的其他配置文件中指定的其他配置设置的参考点,但为避免无法预料的错误,您不应编辑config.py文件本身。我们将对一个名为的新文件添加一些配置更改,该文件config_local.py将在主文件之后读取。
现在使用首选文本编辑器创建此文件。在这里,我们将使用nano:
nano my_env/lib/python3.6/site-packages/pgadmin4/config_local.py
在您的编辑器中,添加以下内容:
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log' SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db' SESSION_DB_PATH = '/var/lib/pgadmin4/sessions' STORAGE_DIR = '/var/lib/pgadmin4/storage' SERVER_MODE = True
以下是这五个指令的作用:

  • LOG_FILE:这定义了将存储pgAdmin日志的文件。
  • SQLITE_PATH:pgAdmin将用户相关数据存储在SQLite数据库中,该指令将pgAdmin软件指向此配置数据库。由于此文件位于持久目录/var/lib/pgadmin4/下,因此升级后您的用户数据不会丢失。
  • SESSION_DB_PATH:指定将用于存储会话数据的目录。
  • STORAGE_DIR:定义pgAdmin将存储其他数据的位置,例如备份和安全证书。
  • SERVER_MODE:设置此指令以True告知pgAdmin在服务器模式下运行,而不是桌面模式。

请注意,每个文件路径都指向您在步骤1中创建的目录。
添加这些行后,保存并关闭文件(按CTRL + X,然后Y再ENTER)。使用这些配置后,运行pgAdmin安装脚本以设置登录凭据:
python my_env/lib/python3.6/site-packages/pgadmin4/setup.py
运行此命令后,您将看到一个提示,询问您的电子邮件地址和密码。当您稍后访问pgAdmin时,这些将作为您的登录凭据,因此请务必记住或记下您在此处输入的内容:
. . . Enter the email address and password to use for the initial pgAdmin user account: ​ Email address: sammy@example.com Password: Retype password:
在此之后,停用您的虚拟环境:
deactivate
重新调用您在config_local.py文件中指定的文件路径。这些文件保存在您在步骤1中创建的目录中,这些目录当前归非root用户所有。但是,它们必须可由运行Web服务器的用户和组访问。默认情况下,在Ubuntu 18.04上,这些是www-data用户和组,因此更新以下目录的权限,以便为这两个目录提供www-data所有权:
sudo chown -R www-data:www-data /var/lib/pgadmin4/ sudo chown -R www-data:www-data /var/log/pgadmin4/
这样,pgAdmin就完全配置了。但是,该程序尚未从您的服务器提供,因此它仍然无法访问。要解决此问题,我们将配置Apache以提供pgAdmin,以便您可以通过Web浏览器访问其用户界面。
第3步 - 配置Apache
Apache Web服务器使用虚拟主机来封装配置详细信息,并从单个服务器托管多个域。如果您遵循先决条件Apache教程,则可能已在名称下设置了示例虚拟主机文件example.com.conf,但在此步骤中,我们将创建一个新的文件,我们可以从中为pgAdmin Web界面提供服务。
首先,请确保您位于根目录中:
cd /
然后在您的/sites-available/目录中创建一个名为pgadmin4.conf的新文件。这将是您服务器的虚拟主机文件:
sudo nano /etc/apache2/sites-available/pgadmin4.conf
将以下内容添加到此文件中,确保更新突出显示的部分以与您自己的配置一致:
<VirtualHost *> ServerName your_server_ip ​ WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/sammy/environments/my_env WSGIScriptAlias / /home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi ​ <Directory "/home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/"> WSGIProcessGroup pgadmin WSGIApplicationGroup %{GLOBAL} Require all granted </Directory> </VirtualHost>
保存并关闭虚拟主机文件。接下来,使用该a2dissite脚本禁用默认虚拟主机文件000-default.conf:
sudo a2dissite 000-default.conf
注意:如果您遵循先决条件Apache教程,则可能已禁用000-default.conf并设置示例虚拟主机配置文件(在准备中命名为example.com.conf)。如果是这种情况,则需要使用以下命令禁用example.com.conf虚拟主机文件:
sudo a2dissite example.com.conf
然后使用a2ensite脚本启用pgadmin4.conf虚拟主机文件。这将创建从/sites-available/目录中的虚拟主机文件到/sites-enabled/目录的符号链接:
sudo a2ensite pgadmin4.conf
在此之后,测试您的配置文件的语法是否正确:
apachectl configtest
如果您的配置文件全部有序,您将看到Syntax OK。如果在输出中看到错误,请重新打开pgadmin4.conf文件并仔细检查您的IP地址和文件路径是否都正确,然后重新运行configtest。
在输出中看到Syntax OK后,重新启动Apache服务,以便它读取新的虚拟主机文件:
sudo systemctl restart apache2
pgAdmin现已完全安装和配置。接下来,我们将讨论如何在将浏览器连接到PostgreSQL数据库之前从浏览器访问pgAdmin。
第4步 - 访问pgAdmin
在本地计算机上,打开首选的Web浏览器并导航到服务器的IP地址:
your_server_ip
到达后,您将看到一个类似于以下内容的登录屏幕:

输入您在步骤2中定义的登录凭据,然后您将进入pgAdmin欢迎屏幕:

现在您已经确认可以访问pgAdmin界面,剩下要做的就是将pgAdmin连接到PostgreSQL数据库。不过,在此之前,您需要对PostgreSQL超级用户的配置进行一次小的更改。
第5步 - 配置PostgreSQL用户
如果您遵循PostgreSQL教程准备,您应该已经在服务器上安装了PostgreSQL,并设置了新的超级用户角色和数据库。
默认情况下,在PostgreSQL中,您使用“标识协议”或“ident”身份验证方法作为数据库用户进行身份验证。这涉及PostgreSQL获取客户端的Ubuntu用户名并将其用作允许的数据库用户名。在许多情况下,这可以提高安全性,但是在您希望外部程序(例如pgAdmin)连接到其中一个数据库的情况下,它也会导致问题。要解决此问题,我们将为此PostgreSQL角色设置一个密码,该密码将允许pgAdmin连接到您的数据库。
在终端上,以超级用户角色打开PostgreSQL提示符:
sudo -u sammy psql
在PostgreSQL提示符下,更新用户配置文件以获得您选择的强密码:
ALTER USER sammy PASSWORD 'password';
然后退出PostgreSQL提示符:
\q
接下来,返回浏览器中的pgAdmin 4界面,找到左侧的“ 浏览器”菜单。右键单击“ 服务器”以打开上下文菜单,将鼠标悬停在“ 创建”上,然后单击“ 服务器...”。

这将导致在浏览器中弹出一个窗口,您将在其中输入有关服务器,角色和数据库的信息。
在“ 常规”选项卡中,输入此服务器的名称。这可以是您想要的任何内容,但您可能会发现使其具有描述性是有帮助的。在我们的示例中,服务器已命名为Sammy-server-1。

接下来,单击“ 连接”选项卡。在主机名/地址字段中,输入localhost。该端口应设置为5432默认情况下,将这种设置的工作,因为这是PostgreSQL所使用的默认端口。
在“ 维护数据库”字段中,输入要连接的数据库的名称。请注意,必须已在服务器上创建此数据库。然后,分别输入您在“ 用户名”和“ 密码”字段中配置的PostgreSQL用户名和密码。

其他选项卡中的空白字段是可选的,只有在您需要特定设置时才需要填写它们。单击“ 保存”按钮,数据库将显示在“ 浏览器”菜单中的“ 服务器”下。
您已成功将pgAdmin4连接到PostgreSQL数据库。您可以使用pgAdmin仪表板中的任何内容来完成PostgreSQL提示。为了说明这一点,我们将创建一个示例表,并通过Web界面使用一些示例数据填充它。
步骤6 - 在pgAdmin仪表板中创建表
从pgAdmin仪表板中,找到窗口左侧的“ 浏览器”菜单。单击Servers(1)旁边的加号(+ )以展开其中的树状菜单。接下来,单击您在上一步中添加的服务器左侧的加号(在我们的示例中为Sammy-server-1),然后展开Databases,您添加的数据库的名称(在我们的示例中为sammy),然后架构(1)。您应该看到如下树状菜单:

右键单击表列表项,然后将光标悬停创建并单击表...。

这将打开一个Create-Table窗口。在此窗口的“ 常规”选项卡下,输入表的名称。这可以是你想要的任何东西,但为了简单起见,我们将其称为table-01。

然后导航到Columns选项卡并单击窗口右上角的+号以添加一些列。添加列时,您需要为其指定名称和数据类型,如果您选择的数据类型需要,则可能需要选择长度。
此外,PostgreSQL官方文档指出,向表中添加主键通常是最佳做法。甲主键是一个约束,其指示可以用作用于在表中的行的特殊标识符列的特定列或组。这是不是必需的,但如果你想设置你列一个或多个作为主键,切换最右侧的开关从没有到有。
单击“ 保存”按钮以创建表。

到目前为止,您已经创建了一个表并为其添加了几列。但是,列尚未包含任何数据。要将数据添加到新表,请在“ 浏览器”菜单中右键单击表的名称,将光标悬停在“ 脚本”上,然后单击“ 插入脚本”。

这将在仪表板上打开一个新面板。在顶部,您将看到一个部分完成的INSERT语句,其中包含相应的表和列名称。继续使用一些虚拟数据替换问号(?),确保您添加的数据与您为每列选择的数据类型一致。请注意,您还可以通过在一组新括号中添加每一行来添加多行数据,每组括号用逗号分隔,如以下示例所示。
如果您愿意,可以使用此示例INSERT语句替换部分完成的INSERT脚本:
INSERT INTO public."table-01"( col1, col2, col3) VALUES ('Juneau', 14, 337), ('Bismark', 90, 2334), ('Lansing', 51, 556);

单击闪电图标(⚡)执行该INSERT语句。要查看表格及其中的所有数据,请再次在“ 浏览器”菜单中右键单击表格名称,将光标悬停在“ 查看/编辑数据”上,然后选择“ 所有行”。

这将打开另一个新面板,在该面板下方的数据输出选项卡中,您可以查看该表中保存的所有数据。

有了这个,您已经成功创建了一个表,并通过pgAdmin Web界面填充了一些数据。当然,这只是一种可以通过pgAdmin创建表的方法。例如,可以使用SQL创建和填充表,而不是使用此步骤中描述的基于GUI的方法。
结论
在本教程中,您学习了如何从Python虚拟环境安装pgAdmin 4,配置它,使用Apache将其提供给Web,以及如何将其连接到PostgreSQL数据库。此外,本教程介绍了一种可用于创建和填充表的方法,但pgAdmin不仅可用于创建和编辑表。
想要了解更多关于安装和配置pgAdmin 4的相关教程,请前往腾讯云+社区学习更多知识。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3153562/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: R语言分析股票
请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    39945