如何在FreeBSD 12上安装PostgreSQL 11

时间:2020-02-23 14:32:11  来源:igfitidea点击:

欢迎阅读有关如何在FreeBSD 12上安装PostgreSQL 11的今天的文章。PostgreSQL是最先进的开源对象关系数据库系统,可用于管理大量数据集。它具有确保容错和数据完整性的功能。在PostgreSQL 11版本页面上查看新功能。

PostgreSQL数据库服务器的应用范围可以从服务小型到分布式和复杂的应用程序。它支持所有RDBMS功能以及对面向对象的数据库模型的添加支持。

在FreeBSD 12上安装PostgreSQL 11

我希望开始安装FreeBSD 12服务器并通过Internet连接运行。还应该以root用户或者具有sudo特权的用户身份运行安装程序。

更新所有软件包存储库目录

业务的第一步是更新可用的远程存储库目录。

$sudo pkg update
 Updating FreeBSD repository catalogue…
 FreeBSD repository is up to date.
 All repositories are up to date.

如果要将软件包升级到存储库中可用的较新版本,请运行:

sudo pkg upgrade

在FreeBSD 12上安装PostgreSQL 11

使用pkg软件包管理器下载并安装PostgreSQL服务器和客户端软件包。

sudo pkg install postgresql11-server postgresql11-client

安装后,启动并启用PostgreSQL服务以在系统引导时启动。

sudo sysrc postgresql_enable=yes

然后通过运行初始化数据库;

# /usr/local/etc/rc.d/postgresql initdb
 The files belonging to this database system will be owned by user "postgres".
 This user must also own the server process.
 The database cluster will be initialized with locale "C".
 The default text search configuration will be set to "english".
 Data page checksums are disabled.
 creating directory /var/db/postgres/data11 … ok
 creating subdirectories … ok
 selecting default max_connections … 100
 selecting default shared_buffers … 128MB
 selecting dynamic shared memory implementation … posix
 creating configuration files … ok
 running bootstrap script … ok
 performing post-bootstrap initialization … ok
 syncing data to disk … ok
 WARNING: enabling "trust" authentication for local connections
 You can change this by editing pg_hba.conf or using the option -A, or
 --auth-local and --auth-host, the next time you run initdb.
 Success. You can now start the database server using:
 /usr/local/bin/pg_ctl -D /var/db/postgres/data11 -l logfile start

启动服务

# /usr/local/etc/rc.d/postgresql start
 2019-02-01 21:45:15.425 UTC [1586] LOG:  listening on IPv6 address "::1", port 5432
 2019-02-01 21:45:15.426 UTC [1586] LOG:  listening on IPv4 address "127.0.0.1", port 5432
 2019-02-01 21:45:15.430 UTC [1586] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
 2019-02-01 21:45:15.436 UTC [1586] LOG:  ending log output to stderr
 2019-02-01 21:45:15.436 UTC [1586] HINT:  Future log output will go to log destination "syslog".

允许进行远程连接

默认情况下,仅从本地主机访问PostgreSQL数据库服务器。

# sockstat -4 -6 | grep 5432
postgres postgres   1586  3  tcp6   ::1:5432              :
postgres postgres   1586  5  tcp4   127.0.0.1:5432        :

要启用远程连接,请安装vim文本编辑器以编辑配置文件。

sudo pkg install vim

打开文件/var/db/postgres/data11/postgresql.conf,然后向下滚动到第54行附近的"连接和认证"部分。

sudo vim /var/db/postgres/data11/postgresql.conf

取消注释" listen_address"和行,然后更改为如下所示。

listen_addresses = '*'

通配符*指示PostregreSQL服务在所有接口上进行侦听。但是我们可以限制为特定的IP地址。

listen_addresses = '192.168.1.20'

重新启动PostgreSQL服务

#  service postgresql restart
 2019-02-02 05:37:14.791 UTC [2649] LOG:  listening on IPv6 address "::", port 5432
 2019-02-02 05:37:14.792 UTC [2649] LOG:  listening on IPv4 address "0.0.0.0", port 5432
 2019-02-02 05:37:14.797 UTC [2649] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
 2019-02-02 05:37:14.821 UTC [2649] LOG:  ending log output to stderr
 2019-02-02 05:37:14.821 UTC [2649] HINT:  Future log output will go to log destination "syslog".

现在,该服务应绑定到所有网络接口

# sockstat -4 -6 | grep 5432
 postgres postgres   2649  3  tcp6   *:5432                *:*
 postgres postgres   2649  5  tcp4   *:5432                *:*

设定PostgreSQL管理员密码

安装PostgreSQL服务器时,默认情况下会创建postgres用户和组。我们需要将该用户的密码重置为我们可以记住的密码。

# passwd  postgres
Changing local password for postgres
New Password:
Retype New Password:

我们也可以使用

$su - postgres
$psql -c "alter user postgres with password 'StrongPassword'"
ALTER ROLE

测试PostgreSQL 11数据库功能

添加测试数据库用户:

su - postgres
createuser test_dbuser

授予创建的用户对test_db的所有权:

createdb test_db -O test_dbuser

登录到test_db数据库:

# psql test_db
 psql (11.1)
 Type "help" for help
test_db=#

设置用户密码:

test_db=# alter user test_dbuser with password 'MyDBpassword';
ALTER ROLE

创建一个表并添加一些虚拟数据。

test_db=# create table test_table ( id int,first_name text, last_name text ); 
CREATE TABLE
test_db=# insert into test_table (id,first_name,last_name) values (1,'John','Doe'); 
INSERT 0 1

显示表格数据

test_db=#  select * from test_table;
  id | first_name | last_name 
 ----+------------+----------
   1 | John       | Doe
 (1 row)

放下测试表

test_db=# DROP TABLE test_table;
DROP TABLE

删除测试数据库

$dropdb test_db;

安装pgAdmin

pgAdmin使我们可以轻松管理PostgreSQL数据库服务器。