Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Linux 上安装 PostgreSQL

Linux 上安装 PostgreSQL

作者头像
别先生
发布于 2020-09-01 07:17:01
发布于 2020-09-01 07:17:01
6.5K00
代码可运行
举报
文章被收录于专栏:别先生别先生
运行总次数:0
代码可运行

可以参考:https://www.cnblogs.com/freeweb/p/8006639.html#top

https://www.cnblogs.com/EasonJim/p/9057867.html

我这里使用的rpm方式,参考链接使用的是tar.gz的方式,看个人需求的吧,没有网络可以使用tar.gz下载好进行安装。

1、Linux查看版本当前操作系统发行信:cat /etc/centos-release。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 [root@slaver1 ~]# cat /etc/centos-release
2 CentOS Linux release 7.7.1908 (Core)
3 [root@slaver1 ~]# 

2、Linux查看版本当前操作系统内核信息:uname -a。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 [root@slaver1 ~]# uname -a
2 Linux slaver1 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
3 [root@slaver1 ~]# 

3、PostgreSQL官网https://www.postgresql.org/

选择自己是什么操作系统, 然后选择对应得即可。

我的是Centos操作系统,如下所示:

然后版本,操作系统版本,多少位的。

4、执行yum下载命令,将rpm包下载下来,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 [root@slaver1 package]# yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
 2 已加载插件:fastestmirror, langpacks
 3 pgdg-redhat-repo-latest.noarch.rpm                                                                                                                                                                       | 6.5 kB  00:00:00     
 4 正在检查 /var/tmp/yum-root-OuHt4M/pgdg-redhat-repo-latest.noarch.rpm: pgdg-redhat-repo-42.0-11.noarch
 5 /var/tmp/yum-root-OuHt4M/pgdg-redhat-repo-latest.noarch.rpm 将被安装
 6 正在解决依赖关系
 7 --> 正在检查事务
 8 ---> 软件包 pgdg-redhat-repo.noarch.0.42.0-11 将被 安装
 9 --> 解决依赖关系完成
10 
11 依赖关系解决
12 
13 ================================================================================================================================================================================================================================
14  Package                                                架构                                         版本                                           源                                                                     大小
15 ================================================================================================================================================================================================================================
16 正在安装:
17  pgdg-redhat-repo                                       noarch                                       42.0-11                                        /pgdg-redhat-repo-latest.noarch                                        11 k
18 
19 事务概要
20 ================================================================================================================================================================================================================================
21 安装  1 软件包
22 
23 总计:11 k
24 安装大小:11 k
25 Is this ok [y/d/N]: y
26 Downloading packages:
27 Running transaction check
28 Running transaction test
29 Transaction test succeeded
30 Running transaction
31   正在安装    : pgdg-redhat-repo-42.0-11.noarch                                                                                                                                                                             1/1 
32   验证中      : pgdg-redhat-repo-42.0-11.noarch                                                                                                                                                                             1/1 
33 
34 已安装:
35   pgdg-redhat-repo.noarch 0:42.0-11                                                                                                                                                                                             
36 
37 完毕!

5、然后开始安装postgresql服务器端,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  1 [root@slaver1 package]# yum install postgresql10-server
  2 已加载插件:fastestmirror, langpacks
  3 /var/run/yum.pid 已被锁定,PID78607 的另一个程序正在运行。
  4 Another app is currently holding the yum lock; waiting for it to exit...
  5   另一个应用程序是:PackageKit
  6     内存: 31 M RSS451 MB VSZ7     已启动: Thu Aug 13 09:51:43 2020 - 00:11之前
  8     状态  :睡眠中,进程ID78607
  9 Another app is currently holding the yum lock; waiting for it to exit...
 10   另一个应用程序是:PackageKit
 11     内存: 32 M RSS452 MB VSZ12     已启动: Thu Aug 13 09:51:43 2020 - 00:13之前
 13     状态  :睡眠中,进程ID78607
 14 Another app is currently holding the yum lock; waiting for it to exit...
 15   另一个应用程序是:PackageKit
 16     内存: 32 M RSS452 MB VSZ17     已启动: Thu Aug 13 09:51:43 2020 - 00:15之前
 18     状态  :睡眠中,进程ID78607
 19 Another app is currently holding the yum lock; waiting for it to exit...
 20   另一个应用程序是:PackageKit
 21     内存: 32 M RSS452 MB VSZ22     已启动: Thu Aug 13 09:51:43 2020 - 00:17之前
 23     状态  :睡眠中,进程ID78607
 24 Another app is currently holding the yum lock; waiting for it to exit...
 25   另一个应用程序是:PackageKit
 26     内存: 32 M RSS452 MB VSZ27     已启动: Thu Aug 13 09:51:43 2020 - 00:19之前
 28     状态  :睡眠中,进程ID78607
 29 Another app is currently holding the yum lock; waiting for it to exit...
 30   另一个应用程序是:PackageKit
 31     内存: 32 M RSS452 MB VSZ32     已启动: Thu Aug 13 09:51:43 2020 - 00:21之前
 33     状态  :睡眠中,进程ID78607
 34 Another app is currently holding the yum lock; waiting for it to exit...
 35   另一个应用程序是:PackageKit
 36     内存: 38 M RSS459 MB VSZ37     已启动: Thu Aug 13 09:51:43 2020 - 00:23之前
 38     状态  :运行中,进程ID78607
 39 Another app is currently holding the yum lock; waiting for it to exit...
 40   另一个应用程序是:PackageKit
 41     内存:174 M RSS594 MB VSZ42     已启动: Thu Aug 13 09:51:43 2020 - 00:25之前
 43     状态  :运行中,进程ID78607
 44 Another app is currently holding the yum lock; waiting for it to exit...
 45   另一个应用程序是:PackageKit
 46     内存:265 M RSS685 MB VSZ47     已启动: Thu Aug 13 09:51:43 2020 - 00:27之前
 48     状态  :运行中,进程ID78607
 49 Another app is currently holding the yum lock; waiting for it to exit...
 50   另一个应用程序是:PackageKit
 51     内存:265 M RSS685 MB VSZ52     已启动: Thu Aug 13 09:51:43 2020 - 00:29之前
 53     状态  :睡眠中,进程ID78607
 54 Another app is currently holding the yum lock; waiting for it to exit...
 55   另一个应用程序是:PackageKit
 56     内存:265 M RSS685 MB VSZ57     已启动: Thu Aug 13 09:51:43 2020 - 00:31之前
 58     状态  :睡眠中,进程ID78607
 59 Loading mirror speeds from cached hostfile
 60  * base: mirrors.aliyun.com
 61  * epel: mirrors.yun-idc.com
 62  * extras: mirror.bit.edu.cn
 63  * updates: mirrors.aliyun.com
 64 正在解决依赖关系
 65 --> 正在检查事务
 66 ---> 软件包 postgresql10-server.x86_64.0.10.13-1PGDG.rhel7 将被 安装
 67 --> 正在处理依赖关系 postgresql10-libs(x86-64) = 10.13-1PGDG.rhel7,它被软件包 postgresql10-server-10.13-1PGDG.rhel7.x86_64 需要
 68 --> 正在处理依赖关系 postgresql10(x86-64) = 10.13-1PGDG.rhel7,它被软件包 postgresql10-server-10.13-1PGDG.rhel7.x86_64 需要
 69 --> 正在处理依赖关系 libpq.so.5()(64bit),它被软件包 postgresql10-server-10.13-1PGDG.rhel7.x86_64 需要
 70 --> 正在检查事务
 71 ---> 软件包 postgresql10.x86_64.0.10.13-1PGDG.rhel7 将被 安装
 72 ---> 软件包 postgresql10-libs.x86_64.0.10.13-1PGDG.rhel7 将被 安装
 73 --> 解决依赖关系完成
 74 
 75 依赖关系解决
 76 
 77 ================================================================================================================================================================================================================================
 78  Package                                                      架构                                            版本                                                        源                                               大小
 79 ================================================================================================================================================================================================================================
 80 正在安装:
 81  postgresql10-server                                          x86_64                                          10.13-1PGDG.rhel7                                           pgdg10                                          4.5 M
 82 为依赖而安装:
 83  postgresql10                                                 x86_64                                          10.13-1PGDG.rhel7                                           pgdg10                                          1.6 M
 84  postgresql10-libs                                            x86_64                                          10.13-1PGDG.rhel7                                           pgdg10                                          357 k
 85 
 86 事务概要
 87 ================================================================================================================================================================================================================================
 88 安装  1 软件包 (+2 依赖软件包)
 89 
 90 总下载量:6.5 M
 91 安装大小:28 M
 92 Is this ok [y/d/N]: y
 93 Downloading packages:
 94 警告:/var/cache/yum/x86_64/7/pgdg10/packages/postgresql10-libs-10.13-1PGDG.rhel7.x86_64.rpm:V4 DSA/SHA1 Signature, 密钥 ID 442df0f8: NOKEY                                                ] 128 kB/s | 416 kB  00:00:48 ETA 
 95 postgresql10-libs-10.13-1PGDG.rhel7.x86_64.rpm 的公钥尚未安装
 96 (1/3): postgresql10-libs-10.13-1PGDG.rhel7.x86_64.rpm                                                                                                                                                    | 357 kB  00:00:05     
 97 (2/3): postgresql10-10.13-1PGDG.rhel7.x86_64.rpm                                                                                                                                                         | 1.6 MB  00:02:40     
 98 (3/3): postgresql10-server-10.13-1PGDG.rhel7.x86_64.rpm                                                                                                                                                  | 4.5 MB  00:02:44     
 99 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
100 总计                                                                                                                                                                                             39 kB/s | 6.5 MB  00:02:50     
101 从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG 检索密钥
102 导入 GPG key 0x442DF0F8:
103  用户ID     : "PostgreSQL RPM Building Project <pgsqlrpms-hackers@pgfoundry.org>"
104  指纹       : 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8
105  软件包     : pgdg-redhat-repo-42.0-11.noarch (@/pgdg-redhat-repo-latest.noarch)
106  来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
107 是否继续?[y/N]:y
108 Running transaction check
109 Running transaction test
110 Transaction test succeeded
111 Running transaction
112   正在安装    : postgresql10-libs-10.13-1PGDG.rhel7.x86_64                                                                                                                                                                  1/3 
113   正在安装    : postgresql10-10.13-1PGDG.rhel7.x86_64                                                                                                                                                                       2/3 
114   正在安装    : postgresql10-server-10.13-1PGDG.rhel7.x86_64                                                                                                                                                                3/3 
115   验证中      : postgresql10-libs-10.13-1PGDG.rhel7.x86_64                                                                                                                                                                  1/3 
116   验证中      : postgresql10-10.13-1PGDG.rhel7.x86_64                                                                                                                                                                       2/3 
117   验证中      : postgresql10-server-10.13-1PGDG.rhel7.x86_64                                                                                                                                                                3/3 
118 
119 已安装:
120   postgresql10-server.x86_64 0:10.13-1PGDG.rhel7                                                                                                                                                                                
121 
122 作为依赖被安装:
123   postgresql10.x86_64 0:10.13-1PGDG.rhel7                                                                      postgresql10-libs.x86_64 0:10.13-1PGDG.rhel7                                                                     
124 
125 完毕!
126 [root@slaver1 package]# 

6、开始初始化postgresql数据库,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 [root@slaver1 package]# /usr/pgsql-10/bin/postgresql-10-setup initdb
2 Initializing database ... OK
3 
4 [root@slaver1 package]# 

7、设置开机自启动,然后启动postgresql数据库,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 [root@slaver1 package]# systemctl enable postgresql-10
2 Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-10.service to /usr/lib/systemd/system/postgresql-10.service.
3 [root@slaver1 package]# systemctl start postgresql-10
4 [root@slaver1 package]# 

8、查看postgresql的相关进程,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 [root@slaver1 ~]# ps -ef | grep postgres
 2 postgres  79928      1  0 10:07 ?        00:00:00 /usr/pgsql-10/bin/postmaster -D /var/lib/pgsql/10/data/
 3 postgres  79931  79928  0 10:07 ?        00:00:00 postgres: logger process   
 4 postgres  79933  79928  0 10:07 ?        00:00:00 postgres: checkpointer process   
 5 postgres  79934  79928  0 10:07 ?        00:00:00 postgres: writer process   
 6 postgres  79935  79928  0 10:07 ?        00:00:00 postgres: wal writer process   
 7 postgres  79936  79928  0 10:07 ?        00:00:00 postgres: autovacuum launcher process   
 8 postgres  79937  79928  0 10:07 ?        00:00:00 postgres: stats collector process   
 9 postgres  79938  79928  0 10:07 ?        00:00:00 postgres: bgworker: logical replication launcher   
10 root      84515  78910  0 10:56 pts/4    00:00:00 grep --color=auto postgres
11 [root@slaver1 ~]# 

pgsql默认的端口号为5432,通过netstat命令或者lsof命令都可以看到监听情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 [root@slaver1 ~]# lsof -i:5432
 2 COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
 3 postmaste 79928 postgres    3u  IPv6 663083      0t0  TCP localhost:postgres (LISTEN)
 4 postmaste 79928 postgres    4u  IPv4 663084      0t0  TCP localhost:postgres (LISTEN)
 5 [root@slaver1 ~]# netstat -an | grep 5432
 6 tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN     
 7 tcp6       0      0 ::1:5432                :::*                    LISTEN     
 8 unix  2      [ ACC ]     STREAM     LISTENING     663093   /var/run/postgresql/.s.PGSQL.5432
 9 unix  2      [ ACC ]     STREAM     LISTENING     663095   /tmp/.s.PGSQL.5432
10 [root@slaver1 ~]# 

现在可以看到pgsql默认监听的是localhost或127.0.0.1,目前只能本机访问,如果远程访问就连接不上了,具体的配置文件是data目录下的postgresql.conf,可以通过修改这个配置文件来调整各个参数,比如:listen_addresses可以修改绑定的地址,默认是localhost,port可以修改监听的端口号,默认是5432,max_connections可以修改最大客户端连接数量,默认是100等等。

注意:我这里才用的是默认的安装方式,就使用find命令查找了一下postgresql.conf的配置位置,然后进行修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 [root@slaver1 /]# find -name postgresql.conf
 2 ./var/lib/pgsql/10/data/postgresql.conf
 3 ./usr/lib/tmpfiles.d/postgresql.conf
 4 [root@slaver1 /]# ll /var/lib/pgsql/10/data/
 5 总用量 60
 6 drwx------. 5 postgres postgres    41 813 10:06 base
 7 -rw-------. 1 postgres postgres    30 813 10:07 current_logfiles
 8 drwx------. 2 postgres postgres  4096 813 10:20 global
 9 drwx------. 2 postgres postgres    32 813 10:07 log
10 drwx------. 2 postgres postgres     6 813 10:06 pg_commit_ts
11 drwx------. 2 postgres postgres     6 813 10:06 pg_dynshmem
12 -rw-------. 1 postgres postgres  4269 813 10:06 pg_hba.conf
13 -rw-------. 1 postgres postgres  1636 813 10:06 pg_ident.conf
14 drwx------. 4 postgres postgres    68 813 10:12 pg_logical
15 drwx------. 4 postgres postgres    36 813 10:06 pg_multixact
16 drwx------. 2 postgres postgres    18 813 10:07 pg_notify
17 drwx------. 2 postgres postgres     6 813 10:06 pg_replslot
18 drwx------. 2 postgres postgres     6 813 10:06 pg_serial
19 drwx------. 2 postgres postgres     6 813 10:06 pg_snapshots
20 drwx------. 2 postgres postgres     6 813 10:06 pg_stat
21 drwx------. 2 postgres postgres    63 813 11:01 pg_stat_tmp
22 drwx------. 2 postgres postgres    18 813 10:06 pg_subtrans
23 drwx------. 2 postgres postgres     6 813 10:06 pg_tblspc
24 drwx------. 2 postgres postgres     6 813 10:06 pg_twophase
25 -rw-------. 1 postgres postgres     3 813 10:06 PG_VERSION
26 drwx------. 3 postgres postgres    60 813 10:06 pg_wal
27 drwx------. 2 postgres postgres    18 813 10:06 pg_xact
28 -rw-------. 1 postgres postgres    88 813 10:06 postgresql.auto.conf
29 -rw-------. 1 postgres postgres 22985 813 10:06 postgresql.conf
30 -rw-------. 1 postgres postgres    58 813 10:07 postmaster.opts
31 -rw-------. 1 postgres postgres   104 813 10:07 postmaster.pid
32 [root@slaver1 /]# vim /var/lib/pgsql/10/data/postgresql.conf 
33 [root@slaver1 /]# 

这里将localhost修改为192.168.110.133,如下所示:

9、命令行界面简单操作,pgsql和mysql一样可以通过交互式提示符连接操作,连接方式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 [root@slaver1 ~]# psql -h 127.0.0.1 -d postgres -U postgres -p 5432
2 psql: 致命错误:  用户 "postgres" Ident 认证失败
3 [root@slaver1 ~]# 

修改认证文件[root@slaver1 ~]# vim /var/lib/pgsql/10/data/pg_hba.conf,登陆使用密码。把这个配置文件中的认证 METHOD的ident修改为trust,可以实现用账户和密码来访问数据库,即解决psql: 致命错误: 用户 "postgres" Ident 认证失败 这个问题)。

重启postgresql服务器使设置生效,如下所示:

注意:其中-h参数指定服务器地址,默认为127.0.0.1,默认不指定即可,-d指定连接之后选中的数据库,默认也是postgres,-U指定用户,默认是当前用户,-p 指定端口号,默认是"5432",其它更多的参数选项可以执行: ./bin/psql --help 查看。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 [root@slaver1 ~]# psql -h 127.0.0.1 -d postgres -U postgres -p 5432
2 psql: could not connect to server: 拒绝连接
3     Is the server running on host "127.0.0.1" and accepting
4     TCP/IP connections on port 5432?
5 [root@slaver1 ~]# psql -h 192.168.110.133 -d postgres -U postgres -p 5432
6 psql: 致命错误:  没有用于主机 "192.168.110.133", 用户 "postgres", 数据库 "postgres", SSL 关闭 的 pg_hba.conf 记录
7 [root@slaver1 ~]# 

由于这里需要设置可以远程链接,将127.0.0.1的都改成自己ip地址,vim /var/lib/pgsql/10/data/pg_hba.conf,如下所示:

修改完毕,重启postgresql服务,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 [root@slaver1 ~]# systemctl stop postgresql-10
 2 [root@slaver1 ~]# systemctl start postgresql-10
 3 [root@slaver1 ~]# ps -ef | grep postgres
 4 postgres  86970      1  2 11:23 ?        00:00:00 /usr/pgsql-10/bin/postmaster -D /var/lib/pgsql/10/data/
 5 postgres  86972  86970  0 11:23 ?        00:00:00 postgres: logger process   
 6 postgres  86974  86970  0 11:23 ?        00:00:00 postgres: checkpointer process   
 7 postgres  86975  86970  0 11:23 ?        00:00:00 postgres: writer process   
 8 postgres  86976  86970  0 11:23 ?        00:00:00 postgres: wal writer process   
 9 postgres  86977  86970  0 11:23 ?        00:00:00 postgres: autovacuum launcher process   
10 postgres  86978  86970  0 11:23 ?        00:00:00 postgres: stats collector process   
11 postgres  86979  86970  0 11:23 ?        00:00:00 postgres: bgworker: logical replication launcher   
12 root      86982  78910  0 11:23 pts/4    00:00:00 grep --color=auto postgres
13 [root@slaver1 ~]# lsof -i:5432
14 COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
15 postmaste 86970 postgres    3u  IPv4 797866      0t0  TCP slaver1:postgres (LISTEN)
16 [root@slaver1 ~]# ps -ef | grep postgres
17 postgres  86970      1  0 11:23 ?        00:00:00 /usr/pgsql-10/bin/postmaster -D /var/lib/pgsql/10/data/
18 postgres  86972  86970  0 11:23 ?        00:00:00 postgres: logger process   
19 postgres  86974  86970  0 11:23 ?        00:00:00 postgres: checkpointer process   
20 postgres  86975  86970  0 11:23 ?        00:00:00 postgres: writer process   
21 postgres  86976  86970  0 11:23 ?        00:00:00 postgres: wal writer process   
22 postgres  86977  86970  0 11:23 ?        00:00:00 postgres: autovacuum launcher process   
23 postgres  86978  86970  0 11:23 ?        00:00:00 postgres: stats collector process   
24 postgres  86979  86970  0 11:23 ?        00:00:00 postgres: bgworker: logical replication launcher   
25 root      86994  78910  0 11:24 pts/4    00:00:00 grep --color=auto postgres
26 [root@slaver1 ~]# 

然后使用命令行的方式连接postgresql数据库,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 [root@slaver1 ~]# psql -h 192.168.110.133 -d postgres -U postgres -p 5432
2 psql (9.2.24, 服务器 10.13)
3 警告:psql 版本9.2, 服务器版本10.0.
4 一些psql功能可能无法工作.
5 输入 "help" 来获取帮助信息.
6 
7 postgres=# 

登录进去默认界面,命令提示符前面的就是当前的数据库,使用 \l 查看当前的数据库列表,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 [root@slaver1 ~]# psql -h 192.168.110.133 -d postgres -U postgres -p 5432
 2 psql (9.2.24, 服务器 10.13)
 3 警告:psql 版本9.2, 服务器版本10.0.
 4 一些psql功能可能无法工作.
 5 输入 "help" 来获取帮助信息.
 6 
 7 postgres=# 
 8 postgres=# \l
 9                                      资料库列表
10    名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
11 -----------+----------+----------+-------------+-------------+-----------------------
12  postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
13  template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
14            |          |          |             |             | postgres=CTc/postgres
15  template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
16            |          |          |             |             | postgres=CTc/postgres
17 (3 行记录)
18 
19 postgres=# 

创建一个简单的数据表可以执行下面的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 postgres=# CREATE TABLE student (
2 postgres(#   id integer NOT NULL,
3 postgres(#   name character(32),
4 postgres(#   number char(5),
5 postgres(#   CONSTRAINT student_pkey PRIMARY KEY (id)
6 postgres(# );
7 CREATE TABLE
8 postgres=# 
9 postgres=# 

创建表之后可以使用 \d student; 查看表的详细信息,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 postgres=# \d student;
 2      资料表 "public.student"
 3   栏位  |     型别      | 修饰词 
 4 --------+---------------+--------
 5  id     | integer       | 非空
 6  name   | character(32) | 
 7  number | character(5)  | 
 8 索引:
 9     "student_pkey" PRIMARY KEY, btree (id)
10 
11 postgres=# 

现在可以插入一条测试数据: INSERT INTO student (id, name, number) VALUES (1, '张三', '1023'); 然后可以查询这条数据: SELECT * FROM student WHERE id=1;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 postgres=# INSERT INTO student (id, name, number) VALUES (1, '张三', '1023');
2 INSERT 0 1
3 postgres=# SELECT * FROM student WHERE id=1;
4  id |                name                | number 
5 ----+------------------------------------+--------
6   1 | 张三                               | 1023 
7 (1 行记录)
8 
9 postgres=# 

最后可以执行 \q 退出交互式界面。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 postgres=# \q
2 [root@slaver1 ~]# 

10、问题:致命错误: 用户 "postgres" Ident 认证失败?

  说明:这个是由于没有配置远程访问且认证方式没改造成的,只需要更改使用账号密码认证即可。   解决:找到pg_hba.conf(find / -name pg_hba.conf),METHOD的ident修改为md5,且把ip端改为0.0.0.0/0,或者想要的IP地址即可。修改完成后直接reload即可。

11、METHOD指定如何处理客户端的认证。常用的有ident,md5,password,trust,reject

1)、ident是Linux下PostgreSQL默认的local认证方式,凡是能正确登录服务器的操作系统用户(注:不是数据库用户)就能使用本用户映射的数据库用户不需密码登录数据库。用户映射文件为pg_ident.conf,这个文件记录着与操作系统用户匹配的数据库用户,如果某操作系统用户在本文件中没有映射用户,则默认的映射数据库用户与操作系统用户同名。比如,服务器上有名为user1的操作系统用户,同时数据库上也有同名的数据库用户,user1登录操作系统后可以直接输入psql,以user1数据库用户身份登录数据库且不需密码。很多初学者都会遇到psql -U username登录数据库却出现“username ident 认证失败”的错误,明明数据库用户已经createuser。原因就在于此,使用了ident认证方式,却没有同名的操作系统用户或没有相应的映射用户。解决方案:第一种、在pg_ident.conf中添加映射用户;第二种、改变认证方式。

2)、METHOD指定如何处理客户端的认证,如下所示:     a、md5是常用的密码认证方式,如果你不使用ident,最好使用md5。密码是以md5形式传送给数据库,较安全,且不需建立同名的操作系统用户。     b、password是以明文密码传送给数据库,建议不要在生产环境中使用。     c、trust是只要知道数据库用户名就不需要密码或ident就能登录,建议不要在生产环境中使用。     d、reject是拒绝认证。   3)、在文件查找 listen_addresses,他的值说明:

    a、如果希望只能从本地计算机访问PostgreSQL数据库,就将该项设置为'localhost';     b、如果希望从局域网访问PostgreSQL数据库,就将该项设置为PostgreSQL数据库的局域网IP地址;     c、如果希望从互联网访问PostgreSQL数据库,就将该项设置为PostgreSQL数据库的互联网IP地址;     d、如果希望从任何地方都可以访问PostgreSQL数据库,就将该配置项设置为“*”;   通过ident的描述可以看到上面出现错误(解决psql: 致命错误: 用户 "postgres" Ident 认证失败)的原因是什么了,是因为自己的linux的用户没有和postgresql匹配的用户,才导致出现的错误的,其实这里根据上面的描述有好几种解决方法,由于postgresql数据库会默认生成一个名为postgres的数据库和一个名为postgres的数据库用户,此时,可以同时生成了一个名为postgres的Linux系统用户。但是又不能直接使用root账号切换到postgresql账号,所以需要额外创建一个linux用户用来切换到postgresql账号。

参考:http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WebGIS开发框架及特点
WebGIS开发框架是用于构建基于Web的地理信息系统(GIS)应用程序的软件工具和技术的集合。它们提供了一组预先构建的组件、API和工具,简化了WebGIS应用的开发过程。
数字孪生开发
2025/02/12
1480
WebGIS开发框架及特点
使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化
首先,我们需要安装 geopandas 和 shapely 库。可以通过以下命令来安装:
全栈若城
2024/02/29
2.9K0
使用 geopandas 和 shapely(.shp) 进行地理空间数据处理和可视化
Python中最好用的6个地图可视化库
地理空间数据无处不在:在这次新冠肺炎大流行中,我们见识到了各种地理空间数据可视化工具制作出的各种风格的地图。而对Python的使用者来说,有几个非常强大的库可以帮助我们进行地理空间数据可视化。
DataCharm
2021/02/22
2.2K0
Python中最好用的6个地图可视化库
WebGL开发地图可视化系统的技术框架
开发基于 WebGL 的地图可视化系统需要选择合适的技术框架和工具,以确保高效渲染、灵活交互和良好的性能。以下是常用的技术框架及其特点。
数字孪生开发者
2025/01/30
1770
WebGL开发地图可视化系统的技术框架
你必须掌握的可视化大屏开发模式
我们都尝试去观察生活,但是有时却缺少了总结生活;有时我们太着眼细节,忽略了大局。数据和可视化似乎是两个好兄弟,就像仰望星空与脚踏实地的两种状态。
合一大师
2020/07/20
1.6K0
你必须掌握的可视化大屏开发模式
GIS历史概述与WebGis应用开发技术浅解
声明:本篇在李晓晖的《杂谈WebGIS》,补充更多的资料说明。基于地图二次开发一直断断续续在做,这里算是补充一下基本功把。其实对于前端,WebGis开发都是api,抄demo,改。GIS深入似大海,杂鱼汤来一碗
周陆军
2019/08/11
4K0
常见的WebGIS地图库
Mapbox GL JS 是目前最新潮的前端地图库,它的矢量压缩、动态样式和三维性能令人印象深刻。它本身是开源的,但一般依赖于Mapbox公司提供的底图服务。
Jean
2021/11/23
3.6K0
常见的WebGIS地图库
强烈推荐!汇总了几个前端离不开的2D图形库
在现代前端开发中,无论是构建游戏、数据可视化还是动画效果,合适的2D图形库可以增加用户的趣味性,接下来就给大家介绍几个常用的2D图形库
程序员老鱼
2023/08/10
1.6K0
强烈推荐!汇总了几个前端离不开的2D图形库
地图可视化的艺术:深入比较Mapbox、OpenLayers、Leaflet和Cesium,不同场景下应如何选择地图库
在现代前端开发中,地图应用变得越来越重要,特别是在数据可视化、地理信息系统和移动应用中。本文将详细比较四款流行的地图库:Mapbox、OpenLayers、Leaflet 和 Cesium,分析它们的特点、功能、开源情况、包体积、市场占有率、适宜人群与应用环境,并提供安装与基础使用代码示例。
watermelo37
2025/01/22
7250
地图可视化的艺术:深入比较Mapbox、OpenLayers、Leaflet和Cesium,不同场景下应如何选择地图库
空间地理数据可视化之 mapview 包
本期 R 可视化将介绍 mapview 包的基本内容。这是《Geospatial Health Data》[1]一书中关于空间地理数据可视化 中所提到的最后一个 R 包,关于 mapview 包的更多内容,可进入mapview官网[2]探索学习。
庄闪闪
2021/10/22
1.5K0
空间地理数据可视化之 mapview 包
主流webgis框架介绍与对比
想写本文,主要是源于前两天有个老师找到我说让我录一个大概半个小时的视频,跟大家分享一下各webgis框架之间的区别以及在应用的过程中应该如何选择。其实之前也有学员问过类似的问题,当时只是针对他们的疑问做了回答。虽然各个框架都有用过,有几个还算比较熟悉,但并没有全面的对各个框架进行过比较,刚好借着这个机会,一方面重新对各个框架有一个比较全面的认识,另一方面对各个框架做一个比较,以便后面使用的时候有一个较好的选择。
牛老师讲GIS
2021/09/10
2.6K0
Python奇淫技巧,5个数据可视化工具
数据可视化的工具和程序库已经极大丰盛,当你习惯其中一种或数种时,你会干得很出色,但是如果你因此而沾沾自喜,就会错失从青铜到王者的新工具和程序库。如果你仍然坚持使用Matplotlib(这太神奇了),Seaborn(这也很神奇),Pandas(基本,简单的可视化)和Bokeh,那么你真的需要停下来了解一下新事物了。例如,python中有许多令人惊叹的可视化库,而且通用化程度已经很高,例如下面这五个:
Python数据科学
2019/05/16
4.1K0
Python奇淫技巧,5个数据可视化工具
空间地理数据可视化之 leaflet 包及其拓展
这一期 R 可视化介绍的是 leaflet 包及其扩展内容,除了《Geospatial Health Data》[1]一书中介绍的关于此包的基本使用方法外,小编还在网上探索了 leaflet 包的其他内容,详细见 CSDN[2] 网站。关于 leaflet 包的更多内容,可进入leaflet官网[3]查看学习。
庄闪闪
2021/09/14
2.7K0
浅谈数据可视化那些可用的工具和示例【可视化】
什么是数据可视化?数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。为了有效地传达思想概念,美学形式与功能需要齐头并进,通过直观地传达关键的方面与特征,从而实现对于相当稀疏而又复杂的数据集
灯塔大数据
2018/04/10
1.9K0
浅谈数据可视化那些可用的工具和示例【可视化】
WebGIS开发框架及其特点
WebGIS(Web Geographic Information System)是基于Web技术的地理信息系统,能够通过浏览器实现地理数据的展示、分析和交互。以下是常见的WebGIS开发框架及其特点。
数字孪生开发
2024/12/31
2100
WebGIS开发框架及其特点
优质开源GIS项目-Mars3D三维可视化平台
Mars3D三维可视化平台,是一款支持多行业应用的网页端二三维 GIS 可视化地图平台。支持无插件轻量级的系统运行方式,广泛应用于高效的数据管理、展示及应用,提供地图数据、三维实景数据、互联网数据等多种时空数据的加载与展示,同时扩展了电子沙盘、智慧园区、城市规划、卫星仿真、气象水文、城市可视化和专题图等多种应用场景,满足用户多元业务可视化应用需求。
Towserliu
2025/01/08
3750
优质开源GIS项目-Mars3D三维可视化平台
空间数据可视化神器,Pydeck!
Pydeck库通过deck.gl对数据进行空间可视化渲染,对3D的可视化支持非常强。
小F
2022/02/17
1.9K0
空间数据可视化神器,Pydeck!
Mars3D三维可视化平台
Mars3D平台可用于构建无插件、跨操作系统、 跨浏览器的三维 GIS 应用程序。平台使用 WebGL 来进行硬件加速图形化,跨平台、跨浏览器来实现真正的动态大数据三维可视化。通过 Mars3D产品可快速实现浏览器和移动端上美观、流畅的三维地图呈现与空间分析。
鱼找水需要时间
2023/02/16
1.7K0
Mars3D三维可视化平台
可视化:覆盖全球的网络攻击如何展现?
数据可视化一直是一个很有趣的领域。许多普通人直观上难以感受的数据,如漏洞分布、实时流量分析等,通过数据可视化的手法,可以清晰地看出数据的结构特点和每一个部分之间的内在联系。 著名数据可视化库 D3.js 的部分应用 D3.js 可视化群关系,来自利用 d3.js 对大数据资料进行可视化分析 数据可视化除了常用的图表之类,与地理位置信息系统(GIS)的结合也是其中一个有趣的应用。 首先是数据的准备,要做全球的分布图,得有全网扫描的实力才行哦。HeartBleed 风波的当天晚上,ZoomEye 就给全球
大数据文摘
2018/05/22
1.6K0
WebGL开发地图可视化系统
开发基于 WebGL 的地图可视化系统是一项复杂的任务,涉及多个技术领域和设计决策。以下是开发流程和关键步骤的概述,不涉及具体代码实现。
数字孪生开发者
2025/01/30
1020
WebGL开发地图可视化系统
推荐阅读
相关推荐
WebGIS开发框架及特点
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档