如何在FreeBSD 12上安装PostgreSQL 11
欢迎阅读有关如何在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数据库服务器。