centos7 安装postgresql
1、验证环境
- 操作系统 CentOS-7-x86_64-Everything-1511
- postgresql版本 PostgreSQL 9.6.3:https://www.postgresql.org/download/linux/redhat/
2、安装
- 安装rpm
[root@psql_master ~]# yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
- 安装客户端
[root@psql_master ~]# yum install -y postgresql96
- 安装服务器端
#yum安装postgresql,默认会建一个名为”postgres”的系统账号,用于执行PostgreSQL; #同时数据库中也会生成一个名为”postgres”的数据库用户,且密码已自动生成,需要进入数据库后修改; #PostgreSQL在数据库用户同名的系统账号下登录免密。 [root@psql_master ~]# yum install -y postgresql96-server
- 初始化
[root@psql_master ~]# /usr/pgsql-9.6/bin/postgresql96-setup initdb
- 设置开机启动
[root@psql_master ~]# systemctl enable postgresql-9.6
- 启动
[root@psql_master ~]# systemctl start postgresql-9.6
3、配置使用
- 修改用户密码
#yum安装postgresql,默认会建一个名为”postgres”的系统账号,用于执行PostgreSQL; [root@psql_master ~]# su - postgres #切换用户后,提示符变更为“-bash-4.2$”; #同时数据库中也会生成一个名为”postgres”的数据库用户,且密码已自动生成; #PostgreSQL在数据库用户同名的系统账号下登录免密; -bash-4.2$ psql -U postgres #进入数据库后修改密码; postgres=# alter user postgres with password 'postgres@123'
- 允许远程访问
#配置文件中,默认只能本机访问postgresql; #修改listen_addresses = 'localhost'为listen_addresses = '*',允许所有远程访问; #修改配置文件需要重启服务。 [root@psql_master ~]# sed -i "s|#listen_addresses = 'localhost'|listen_addresses = '*'|g" /var/lib/pgsql/9.6/data/postgresql.conf
- 主机认证
#在第82行之后,”IPv4 local connections”下新增允许的客户端; #“host” 代表主机类型,第一个“all”代表db ,第二个“all”代表user ,“172.29.3.67/32” 代表client ip,“trust”代表认证方式; #认证方式除“trust”外,还有“peer”, “ident”, “md5”, “password”等,具体可参考pg-hba文件: https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html #修改pg.hba文件需要重启服务。 [root@psql_master ~]# vim /var/lib/pgsql/9.6/data/pg_hba.conf host all all 172.29.3.67/32 trust
- 设置环境变量
[root@psql_master ~]# vim /etc/profile export PATH=$PATH:/usr/pgsql-9.6/bin [root@psql_master ~]# source /etc/profile
- 重启服务
[root@psql_master ~]# systemctl restart postgresql-9.6
- 防火墙添加5432端口
开端口命令: firewall-cmd --zone=public --add-port=5432/tcp --permanent 重启防火墙:systemctl restart firewalld.service
4、测试
- 查看端口
[root@psql_master ~]# netstat -tunlp
- 创建用户
postgres=# create user postuser1 with password 'user1@123';
- 创建数据库
postgres=# create database postdb1 owner postuser1; 同时制定数据库所有者
- 数据库赋权
postgres=# grant all privileges on database postdb1 to postuser1 #未赋权则账户只能登录控制台
- 登录新建数据库
#在操作系统层使用新建的账号登录新建的数据库,登录后提示符为“postdb1=>”; #如果在postgres账户下直接使用“postgres=# \c postdb1;”登录,则登录用户依然是postgres, -bash-4.2$ psql -U postuser1 -d postdb1 -h 127.0.0.1 -p 5432
- 创建表
postdb1=> create table tb1( id int primary key, name VARCHAR(20), salary real );
- 插入数据
postdb1=> insert into tb1( id, name, salary) values( 101, 'Mike', 5000.00 );
- 查询
postdb1=>select * from tb1;
5、pgadmin连接postgresql
- pgadmin下载地址:https://www.pgadmin.org/download/
- 添加服务器
打开pgadmin—>添加新的服务器—>(通常标签)名称自定义—>(connection标签)主机名称与postgresql用户密码按需填写,其余可采用默认配置—>保存
- 图形化查看
小白技术分享