linux下安装postgresql 9.6

零、查看centos系统版本:

一、获取RPM源,执行命令:

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

二、安装Postgresql9.6相关服务

yum install postgresql96-server postgresql96-contrib postgresql96-devel

三、查看是否安装成功

rpm -qa | grep postgres

四、初始化数据库

初始化安装:

  数据目录为 /var/lib/pgsql/9.6/data/

  程序目录为  /usr/pgsql-9.6/bin

初始化数据库:

[root@MyCentos1 ~]# cd /var/lib/pgsql/9.6/data/
[root@MyCentos1 data]# sudo -u postgres /usr/pgsql-9.6/bin/initdb -D /var/lib/pgsql/9.6/data/
属于此数据库系统的文件宿主为用户 "postgres".
此用户也必须为服务器进程的宿主.
数据库簇将使用本地化语言 "zh_CN.UTF-8"进行初始化.
默认的数据库编码已经相应的设置为 "UTF8".
initdb: 无法为本地化语言环境"zh_CN.UTF-8"找到合适的文本搜索配置
缺省的文本搜索配置将会被设置到"simple"

禁止为数据页生成校验和.

修复已存在目录 /var/lib/pgsql/9.6/data 的权限 ... 成功
正在创建子目录 ... 成功
选择默认最大联接数 (max_connections) ... 100
选择默认共享缓冲区大小 (shared_buffers) ... 128MB
selecting default timezone ... PRC
选择动态共享内存实现 ......posix
创建配置文件 ... 成功
正在运行自举脚本 ...成功
正在执行自举后初始化 ...成功
同步数据到磁盘...成功

警告:为本地连接启动了 "trust" 认证.
你可以通过编辑 pg_hba.conf 更改或你下次
行 initdb 时使用 -A或者--auth-local和--auth-host选项.

成功。您现在可以用下面的命令开启数据库服务器:

    /usr/pgsql-9.6/bin/pg_ctl -D /var/lib/pgsql/9.6/data/ -l logfile start

[root@MyCentos1 data]# 

五、配置postgresql服务器监听地址和端口号   

#vi /var/lib/pgsql/9.6/data/postgresql.conf  

把下面的2行前的#去掉

  1. listen_address = ‘*’  
  2. port = 5432 

【选择 】 可以设置postgresql访问权限,在文件最后加上:

#vim /var/lib/pgsql/9.6/data/pg_hba.conf  

  1. host all all 0.0.0.0 0.0.0.0 md5 

启动postgresql服务

service postgresql-9.6 start

[root@MyCentos1 ~]# service postgresql-9.6 start
启动 postgresql-9.6 服务: [确定]

六、修改postgresql默认postgres数据库密码

#su - postgres

# psql  

postgres=# ALTER USER postgres WITH PASSWORD ‘postgres’; 

或者直接

 \password postgres
[root@MyCentos1 ~]# su - postgres
-bash-4.1$ psql
psql (9.6.16)
输入 "help" 来获取帮助信息.
postgres=# ALTER USER postgres WITH PASSWORD 'postgres';
ALTER ROLE
postgres=# \password postgres
输入新的密码:
再次输入:
postgres=# create user "tuser" with password '123456' nocreatedb;
CREATE ROLE
postgres=# create database "testdb" with owner ='tuser';
CREATE DATABASE
postgres=# grant all privileges on database testdb to tuser;
GRANT
postgres=# 

七、使用指定用户登录指定数据库,并且创建数据库,插入数据,查询

[root@MyCentos1 ~]# psql -U tuser -d testdb -h 127.0.0.1
psql (9.6.16)
输入 "help" 来获取帮助信息.

testdb=> \l
                                     数据库列表
   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 testdb    | tuser    | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/tuser            +
           |          |          |             |             | tuser=CTc/tuser
(4 行记录)

testdb=> insert into testdb(name,age,hobby,sex) values ('xiaoxiao',23,'eat','');
错误:  关系 "testdb" 不存在
第1行insert into testdb(name,age,hobby,sex) values ('xiaoxiao',23...
                 ^
testdb=> create table user(name varchar(20),age int,hobby varchar(20),sex varchar(10));
错误:  语法错误 在 "user" 或附近的
第1行create table user(name varchar(20),age int,hobby varchar(20)...
                  ^
testdb=> CREATE TABLE user(name VARCHAR(20),age INT,hobby VARCHAR(20),sex VARCHAR(10));
错误:  语法错误 在 "user" 或附近的
第1行CREATE TABLE user(name VARCHAR(20),age INT,hobby VARCHAR(20)...
                  ^
testdb=> CREATE TABLE user(name VARCHAR(20),age INT);
错误:  语法错误 在 "user" 或附近的
第1行CREATE TABLE user(name VARCHAR(20),age INT);
                  ^
testdb=> CREATE TABLE tb_user(name VARCHAR(20),age INT);
CREATE TABLE
testdb=> ALTER TABLE tb_user ADD hobby VARCHAR(40);
ALTER TABLE
testdb=> ALTER TABLE tb_user ADD sex VARCHAR(10);
ALTER TABLE
testdb=> insert into tb_usuer(name,age,hobby,sex) values ('xiaoxiao',12,'eat','');
错误:  关系 "tb_usuer" 不存在
第1行insert into tb_usuer(name,age,hobby,sex) values ('xiaoxiao',...
                 ^
testdb=> insert into tb_user(name,age,hobby,sex) values ('xiaoxiao',12,'eat','');
INSERT 0 1
testdb=> select * from tb_user;
   name   | age | hobby | sex 
----------+-----+-------+-----
 xiaoxiao |  12 | eat   | 女
(1 行记录)

testdb=> 

 八、修改postgresql数据库配置,实现远程登录

vim /var/lib/pgsql/9.6/data/postgresql.conf  

a)  监听地址  

      #listen_addresses = ‘localhost’改为 listen_addresses = ‘*’  

b)  启用密码验证  

      #password_encryption = on改为password_encryption = on  

c)重启数据库

#service postgresql-9.6 restart

 九、修改postgresql防火墙配置:

#vim /etc/sysconfig/iptables    添加以下内容  

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT  

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  

#重启防火墙  

#sudo service iptables restart  

#关掉防火墙

#sudo service iptables stop

参考:

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;


- 迁移数据库:
/usr/pgsql-9.4/bin/pg_dump -U {source user} {source database} -h {postgresql服务器的地址} -p 5432 -f /tmp/pg.sql

/usr/pgsql-9.4/bin/psql -U {source user} {source database} -h {postgresql服务器的地址} -p 5432 -f /tmp/pg.sql

- 多版本的psql:
ls -al /etc/alternatives/
lrwxrwxrwx   1 root root   36 Sep 28 11:26 pgsql-psqlman -> /usr/pgsql-9.4/share/man/man1/psql.1
lrwxrwxrwx   1 root root   26 Sep 28 11:26 pgsql-pg_dump -> /usr/pgsql-9.4/bin/pg_dump
posted @ 2019-11-21 17:31  做一只热爱生活的小透明  阅读(1334)  评论(0)    收藏  举报