Centos7下安装PostgreSQL10

在mysql被收购之后,大家发现了另一款开源的数据库,postgresql,虽然centos自带版本9.2也可以用,但是最近的几次升级支持了更多更新的内容,比如,PostgreSQL有一个MySQL无法比拟的优势,那就是PostGIS,PostGIS可以完美支持空间数据存储和空间分析;从PostgreSQL9.3起就内置了JSON数据类型,而9.4又开始支持JSONB,这标志着PostgreSQL实际上已经是一个关系型数据库和NoSQL数据库的结合体了、虽然postgresql是一个关系型数据库,但是近几次更新PostgreSQL的NoSQL性能有益到甚至超过了
步骤:
1、下载源更新源

yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y  

2、安装postgresq
先查看postgresql源

yum list | grep postgresql

我们需要安装的是这两个。postgresql10-contrib postgresql10-server

yum install postgresql10-contrib postgresql10-server -y

3、初始化数据库

Postgresql安装目录是/usr/pgsql-10,而Postgresql的数据目录是/var/lib/pgsql/版本号/data目录

在这里,如果在装系统开始分配var空间足够大则可以继续,如果分配var空间不够,我们需要更改数据目录,在这里,我们假设var空间足够大。直接开始初始化。

/usr/pgsql-10/bin/postgresql-10-setup initdb

4、启动数据库并设置开机启动

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10.service

5、登录postgresql并设置密码

postgresql在安装时默认添加用户postgres

输入

su - postgres
psql

进入数据库

我们来设置密码:

ALTER USER postgres WITH PASSWORD '密码';

退出:\q

备注其他:列出所有库\l  列出所有用户\du 列出库下所有表\d

6、默认情况下postgresql是不用密码不支持远程登录的。我们需要修改配置文件

vi /var/lib/pgsql/10/data/pg_hba.conf

改为:

# TYPE DATABASE USER ADDRESS METHOD

# “local” is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication all peer
#host replication all 127.0.0.1/32 ident
host all all 0.0.0.0/0 md5

7、打开远程访问

vi /var/lib/pgsql/10/data/postgresql.conf

往下拉我们会看到

#listen_addresses = 'localhost'
#port = 5432

需要改成

listen_addresses = '*'
port = 5432

重启postgresql

systemctl restart postgresql-10

8、登录postgresql

postgresql在安装时默认添加用户postgres

输入

su - postgres
psql

进入数据库

此时已经可以进行验证密码

9、基本操作

postgresql:
psql -U username -d dbname -h 127.0.0.1
\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。

# 创建新表 
CREATE TABLE tb_user(name VARCHAR(20), age INT, date DATE);
# 插入数据 
insert into tb_user(name,age) values('wyc',111);
# 选择记录 
SELECT * FROM tb_user;
# 更新数据 
UPDATE tb_user set name = '李四' WHERE name = '张三';
# 删除记录 
DELETE FROM tb_user WHERE name = '李四' ;
# 添加栏位 
ALTER TABLE tb_user ADD email VARCHAR(40);
# 更新结构 
ALTER TABLE tb_user ALTER COLUMN signup_date SET NOT NULL;
# 更名栏位 
ALTER TABLE tb_user RENAME COLUMN signup_date TO signup;
# 删除栏位 
ALTER TABLE tb_user DROP COLUMN email;
# 表格更名 
ALTER TABLE tb_user RENAME TO backup_tbl;
# 删除表格 
DROP TABLE IF EXISTS backup_tbl;
微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?