重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍“PostgreSQL 10.12本地RPM安装的方法是什么”,在日常操作中,相信很多人在PostgreSQL 10.12本地RPM安装的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PostgreSQL 10.12本地RPM安装的方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联建站长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为茂南企业提供专业的成都网站建设、网站建设,茂南网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
本地RPM包下载地址:
https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7.7-x86_64/
找到如下两个包下载即可:
postgresql10-10.12-1PGDG.rhel7.x86_64.rpm
postgresql10-server-10.12-1PGDG.rhel7.x86_64.rpm
创建用于管理PG的用户和组:
[root@open_source ~]# groupadd postgres [root@open_source ~]# useradd -g postgres postgres [root@open_source ~]# passwd postgres Changing password for user postgres. New password: BAD PASSWORD: The password contains the user name in some form Retype new password: passwd: all authentication tokens updated successfully.
本地安装PostgreSQL 10.12:
[root@open_source ~]# ls -rtl total 6632 -rw-r--r-- 1 root root 6048 Feb 23 15:47 pgdg-redhat-repo-latest.noarch.rpm -rw-r--r-- 1 root root 1657936 Feb 23 16:14 postgresql10-10.12-1PGDG.rhel7.x86_64.rpm -rw-r--r-- 1 root root 4753176 Feb 23 16:14 postgresql10-server-10.12-1PGDG.rhel7.x86_64.rpm -rw-r--r-- 1 root root 365156 Feb 23 16:23 postgresql10-libs-10.12-1PGDG.rhel7.x86_64.rpm [root@open_source ~]# rpm -ivh postgresql10-libs-10.12-1PGDG.rhel7.x86_64.rpm warning: postgresql10-libs-10.12-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY Preparing... ################################# [100%] Updating / installing... 1:postgresql10-libs-10.12-1PGDG.rhe################################# [100%] [root@open_source ~]# rpm -ivh postgresql10-10.12-1PGDG.rhel7.x86_64.rpm warning: postgresql10-10.12-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY Preparing... ################################# [100%] Updating / installing... 1:postgresql10-10.12-1PGDG.rhel7 ################################# [100%] [root@open_source ~]# rpm -ivh postgresql10-server-10.12-1PGDG.rhel7.x86_64.rpm warning: postgresql10-server-10.12-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY Preparing... ################################# [100%] Updating / installing... 1:postgresql10-server-10.12-1PGDG.r################################# [100%] 检查安装是否成功: [root@open_source ~]# rpm -qa|grep postgresql10 postgresql10-10.12-1PGDG.rhel7.x86_64 postgresql10-libs-10.12-1PGDG.rhel7.x86_64 postgresql10-server-10.12-1PGDG.rhel7.x86_64
初始化数据库:
[root@open_source ~]# /usr/pgsql-10/bin/postgresql-10-setup initdb Initializing database ... OK
检查配置:
[root@open_source ~]# cat /usr/lib/systemd/system/postgresql-10.service | egrep -v "^$|^#" [Unit] Description=PostgreSQL 10 database server Documentation=https://www.postgresql.org/docs/10/static/ After=syslog.target After=network.target [Service] Type=notify User=postgres Group=postgres Environment=PGDATA=/var/lib/pgsql/10/data/ OOMScoreAdjust=-1000 Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj Environment=PG_OOM_ADJUST_VALUE=0 ExecStartPre=/usr/pgsql-10/bin/postgresql-10-check-db-dir ${PGDATA} ExecStart=/usr/pgsql-10/bin/postmaster -D ${PGDATA} ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed KillSignal=SIGINT TimeoutSec=0 [Install] WantedBy=multi-user.target
启动数据库方法一:
[root@open_source ~]# systemctl start postgresql-10.service [root@open_source bin]# systemctl status postgresql-10 * postgresql-10.service - PostgreSQL 10 database server Loaded: loaded (/usr/lib/systemd/system/postgresql-10.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2020-02-23 17:07:19 EST; 55min ago Docs: https://www.postgresql.org/docs/10/static/ Process: 12481 ExecStartPre=/usr/pgsql-10/bin/postgresql-10-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 12486 (postmaster) CGroup: /system.slice/postgresql-10.service |-12486 /usr/pgsql-10/bin/postmaster -D /var/lib/pgsql/10/data/ |-12488 postgres: logger process |-12490 postgres: checkpointer process |-12491 postgres: writer process |-12492 postgres: wal writer process |-12493 postgres: autovacuum launcher process |-12494 postgres: stats collector process `-12495 postgres: bgworker: logical replication launcher Feb 23 17:07:19 open_source systemd[1]: Starting PostgreSQL 10 database server... Feb 23 17:07:19 open_source postmaster[12486]: 2020-02-23 17:07:19.702 EST [12486] LOG: listening on IPv6 address "::1", port 5432 Feb 23 17:07:19 open_source postmaster[12486]: 2020-02-23 17:07:19.702 EST [12486] LOG: listening on IPv4 address "127.0....t 5432 Feb 23 17:07:19 open_source postmaster[12486]: 2020-02-23 17:07:19.703 EST [12486] LOG: listening on Unix socket "/var/ru....5432" Feb 23 17:07:19 open_source postmaster[12486]: 2020-02-23 17:07:19.704 EST [12486] LOG: listening on Unix socket "/tmp/.s....5432" Feb 23 17:07:19 open_source postmaster[12486]: 2020-02-23 17:07:19.710 EST [12486] LOG: redirecting log output to logging...rocess Feb 23 17:07:19 open_source postmaster[12486]: 2020-02-23 17:07:19.710 EST [12486] HINT: Future log output will appear in..."log". Feb 23 17:07:19 open_source systemd[1]: Started PostgreSQL 10 database server. Hint: Some lines were ellipsized, use -l to show in full. [root@open_source ~]# ps -ef|grep -i postgres |grep -v grep postgres 12486 1 0 17:07 ? 00:00:00 /usr/pgsql-10/bin/postmaster -D /var/lib/pgsql/10/data/ postgres 12488 12486 0 17:07 ? 00:00:00 postgres: logger process postgres 12490 12486 0 17:07 ? 00:00:00 postgres: checkpointer process postgres 12491 12486 0 17:07 ? 00:00:00 postgres: writer process postgres 12492 12486 0 17:07 ? 00:00:00 postgres: wal writer process postgres 12493 12486 0 17:07 ? 00:00:00 postgres: autovacuum launcher process postgres 12494 12486 0 17:07 ? 00:00:00 postgres: stats collector process postgres 12495 12486 0 17:07 ? 00:00:00 postgres: bgworker: logical replication launcher
启动数据库方法二:
[postgres@open_source ~]$ cd /usr/pgsql-10/bin/ [postgres@open_source bin]$ ./pg_ctl start waiting for server to start....2020-02-23 18:04:33.686 EST [12823] LOG: listening on IPv4 address "127.0.0.1", port 5432 2020-02-23 18:04:33.687 EST [12823] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" 2020-02-23 18:04:33.688 EST [12823] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432" 2020-02-23 18:04:33.693 EST [12823] LOG: redirecting log output to logging collector process 2020-02-23 18:04:33.693 EST [12823] HINT: Future log output will appear in directory "log". done server started [postgres@open_source bin]$ ./pg_ctl status pg_ctl: server is running (PID: 12823) /usr/pgsql-10/bin/postgres [postgres@open_source bin]$ ps -ef|grep postgre |grep -v grep root 12800 9637 0 18:04 pts/0 00:00:00 su - postgres postgres 12801 12800 0 18:04 pts/0 00:00:00 -bash postgres 12823 1 0 18:04 pts/0 00:00:00 /usr/pgsql-10/bin/postgres postgres 12824 12823 0 18:04 ? 00:00:00 postgres: logger process postgres 12826 12823 0 18:04 ? 00:00:00 postgres: checkpointer process postgres 12827 12823 0 18:04 ? 00:00:00 postgres: writer process postgres 12828 12823 0 18:04 ? 00:00:00 postgres: wal writer process postgres 12829 12823 0 18:04 ? 00:00:00 postgres: autovacuum launcher process postgres 12830 12823 0 18:04 ? 00:00:00 postgres: stats collector process postgres 12831 12823 0 18:04 ? 00:00:00 postgres: bgworker: logical replication launcher postgres 12837 12801 0 18:05 pts/0 00:00:00 ps -ef
配置用户环境变量:
[postgres@open_source ~]$ vi .bash_profile export PGPORT=5432 export PGHOST=open_source export PGHOME=/usr/pgsql-10/ export PGDATA=/home/postgres/data export.utf8 export LD_LIBRARY_PATH=/usr/pgsql-10/lib export PATH=$PGHOME/bin:/usr/bin:/usr/sbin:/sbin:$PATH export MANPATH=$PGHOME/share/man:$MANPATH export PGUSER=postgres export PGDATABASE=postgres
创建数据库:
[postgres@open_source ~]$ initdb -D $PGDATA 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 "en_US.utf8". The default database encoding has accordingly been set to "UTF8". The default text search configuration will be set to "english". Data page checksums are disabled. fixing permissions on existing directory /home/postgres/data ... ok creating subdirectories ... ok selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting default timezone ... America/New_York 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: pg_ctl -D /home/postgres/data -l logfile start
登录数据库:
[postgres@open_source ~]$ psql psql: could not connect to server: Connection refused Is the server running on host "open_source" (192.168.84.30) and accepting TCP/IP connections on port 5432? [postgres@open_source ~]$ cd /var/lib/pgsql/10/data [postgres@open_source data]$ ls -rtl total 56 drwx------ 2 postgres postgres 6 Feb 23 16:51 pg_commit_ts -rw------- 1 postgres postgres 3 Feb 23 16:51 PG_VERSION drwx------ 2 postgres postgres 6 Feb 23 16:51 pg_twophase drwx------ 2 postgres postgres 6 Feb 23 16:51 pg_tblspc drwx------ 2 postgres postgres 6 Feb 23 16:51 pg_snapshots drwx------ 2 postgres postgres 6 Feb 23 16:51 pg_serial drwx------ 2 postgres postgres 6 Feb 23 16:51 pg_replslot drwx------ 4 postgres postgres 36 Feb 23 16:51 pg_multixact drwx------ 2 postgres postgres 6 Feb 23 16:51 pg_dynshmem -rw------- 1 postgres postgres 22992 Feb 23 16:51 postgresql.conf -rw------- 1 postgres postgres 88 Feb 23 16:51 postgresql.auto.conf -rw------- 1 postgres postgres 1636 Feb 23 16:51 pg_ident.conf -rw------- 1 postgres postgres 4269 Feb 23 16:51 pg_hba.conf drwx------ 2 postgres postgres 18 Feb 23 16:51 pg_xact drwx------ 3 postgres postgres 60 Feb 23 16:51 pg_wal drwx------ 2 postgres postgres 18 Feb 23 16:51 pg_subtrans drwx------ 2 postgres postgres 4096 Feb 23 16:51 global drwx------ 5 postgres postgres 41 Feb 23 16:51 base -rw------- 1 postgres postgres 58 Feb 23 17:07 postmaster.opts drwx------ 2 postgres postgres 18 Feb 23 17:07 pg_notify drwx------ 2 postgres postgres 32 Feb 23 17:07 log -rw------- 1 postgres postgres 30 Feb 23 17:07 current_logfiles drwx------ 4 postgres postgres 68 Feb 23 18:03 pg_logical drwx------ 2 postgres postgres 6 Feb 23 18:03 pg_stat_tmp drwx------ 2 postgres postgres 25 Feb 23 18:03 pg_stat [postgres@open_source data]$ echo listen_addresses = "'*'" >> postgresql.conf [postgres@open_source data]$ echo "host all all 192.xxx.xxx.xxx/32 trust" >> pg_hba.conf [postgres@open_source data]$ pg_ctl start waiting for server to start....2020-02-23 18:40:17.588 EST [13271] LOG: listening on IPv4 address "0.0.0.0", port 5432 2020-02-23 18:40:17.588 EST [13271] LOG: listening on IPv6 address "::", port 5432 2020-02-23 18:40:17.589 EST [13271] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432" 2020-02-23 18:40:17.589 EST [13271] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432" 2020-02-23 18:40:17.595 EST [13271] LOG: redirecting log output to logging collector process 2020-02-23 18:40:17.595 EST [13271] HINT: Future log output will appear in directory "log". done server started [postgres@open_source data]$ psql psql (10.12) Type "help" for help. postgres=#
到此,关于“PostgreSQL 10.12本地RPM安装的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!