在Conoha VPS上启动PostgreSQL 14并尝试在本地进行连接
总结
以下是将postgreSQL14安装并在VPS上启动,以及连接到本地的步骤的总结。
环境
-
- centOS7.9
-
- postgreSQL14
- Windows11
步骤 (bù
※ 这次是在CentOS 7.9上进行的设置。
1. 下载存储库
sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
※ 出现“无事可做”这一情况时,没有特别必要。
2. 安装
sudo yum -y install postgresql14 postgresql14-server
3. CentOS启动时的自动启动设置
sudo systemctl enable postgresql-14
4. 数据库的初始化
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
由于需要进行初始化才能使用,因此是必要的。
5. 防火墙设置
firewall-cmd --add-port=5432/tcp --zone=public --permanent
firewall-cmd --reload
※ PostgreSQL 默认端口是5432,因此需要在5432端口上开放一个洞。
6. 启动PostgreSQL
sudo systemctl start postgresql-14
7. 启动确认
sudo systemctl status postgresql-14.service
※ 主动:如果处于活动(运行)状态,它能够正常启动。
从外部网络访问PostgreSQL
1. 更改config文件
sudo vi /var/lib/pgsql/14/data/postgresql.conf
当你执行以上命令打开config文件后,进行以下修改。
# 変更前
#listen_addresses = 'localhost'
# 変更後
#listen_addresses = 'localhost'
listen_addresses = '*'
当你不知道postgresql.conf文件在哪里时,可以输入find / -name postgresql.conf 2> /dev/null来确认。
2. 允许设置外部IP地址的权限设置
sudo vi /var/lib/pgsql/14/data/pg_hba.conf
当你打开pg_hba.config文件时,请插入以下内容。
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 0.0.0.0/0 md5
※ 为了安全起见,请使用时注意,因为当前设置存在较高的安全风险。建议限制访问的IP地址范围。还可以修改以仅允许特定用户或数据库访问。←这些更改可以稍后进行。
以下内容也需要修改。
修正前
# "local" is for Unix domain socket connections only
local all all peer
修正後
# "local" is for Unix domain socket connections only
local all all trust
如果不将对等认证更改为信任,那么在除了superUser之外的用户登录时,会出现“psql: error: connection to server on socket “/var/run/postgresql/.s.PGSQL.5432″的错误。
3. 更改允许连接的端口号
sudo vi /var/lib/pgsql/14/data/postgresql.conf
当你输入上述命令并打开了config文件时,请按以下方式进行修正。
# 変更前
#port = 5432
# 変更後 (port 5433 に変更されます)
port = 5433
因为我在5432这里没有问题,所以我没有做这个。
重新启动PostgreSQL,并应用配置更改。
sudo systemctl stop postgresql-14.service
sudo systemctl start postgresql-14.service
以sudo systemctl restart postgresql-14.service命令似乎无法重新启动。
用户设定
1. 连接到Postgres数据库
sudo -u postgres -i
-bash-4.2$ psql -U postgres
2. 创建用户
(Note: This is the translation of “creating a user” in Chinese)
postgres=# CREATE USER {ユーザーネーム} WITH PASSWORD '{パスワード}' CREATEDB;
CREATE ROLE
3. 确认角色
postgres=# \du
如果能够确认刚刚创建的用户,就没有问题。
4. 创建数据库
postgres=# CREATE DATABASE {新規DB名} WITH OWNER {先ほど作成したユーザー名};
CREATE DATABASE
由于与数据库相关联,因此必须创建才能登录。
尝试连接到位于VPS上的本地PostgreSQL。
※ 本次将进行Windows环境的设置。
1. 下载PostgreSQL
请从https://www.enterprisedb.com/downloads/postgres-postgresql-downloads下载
2. 將環境變數中的路徑增加
请将指向包含exe文件的bin文件夹的路径添加到用户环境变量的PATH中。
C:\Program Files\PostgreSQL\14\bin
3. 请确认在命令提示符中是否可以输入命令。
psql --help
只要不出现认为无法识别的错误,例如「psql 是 PostgreSQL 的交互式终端。」,即可。
4. 外部连接
psql -h {VPSのIPアドレス} -U {ユーザー設定で作成したユーザー名} -d {ユーザー設定で作成したDB名}
只要提到数据库名称,就完成了。
testDB=>
- 戻りたいときは\q
请参考
-
- https://self-development.info/postgresql%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A%EF%BC%88%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E4%BD%9C%E6%88%90%E3%81%A8%E5%A4%96%E9%83%A8%E6%8E%A5%E7%B6%9A%E8%A8%B1%E5%8F%AF%EF%BC%89/
-
- https://zenn.dev/hdmt/articles/8b242a8c78f7f1
- https://postgresweb.com/post-6273