注:在Ubuntu18.04上安装PostgreSQL9.5

因为无法修改生产环境,所以有时我们希望在另一个环境中准备特定版本的数据库环境。
以下是我个人的备忘录。

    • Ubuntu18.04LTS

 

    PostgreSQL9.5

安装PostgreSQL 9.5

curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
apt update
apt install postgresql-9.5

启动PostgreSQL

systemctl start postgresql@9.5-main

登录

su postgres
psql -U

显示数据库列表

# \l
                                   List of databases
    Name     |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-------------+----------+----------+-------------+-------------+-----------------------
 postgres    | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
             |          |          |             |             | postgres=CTc/postgres
 template1   | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
             |          |          |             |             | postgres=CTc/postgres

创建数据库

create database test

创造一个桌子

将pkey列设置为主键。

 create table test (pkey serial primary key, id integer);

显示表格列表

# \d
              List of relations
 Schema |     Name      |   Type   |  Owner
--------+---------------+----------+----------
 public | test          | table    | postgres
 public | test_pkey_seq | sequence | postgres
(2 rows)

当在PostgreSQL中设置主键时,会自动创建名为「test_pkey_seq」的表。

选择桌子

postgres=# \c test
You are now connected to database "test" as user "postgres".

桌子设置显示

# \d test
                          Table "public.test"
 Column |  Type   |                      Modifiers
--------+---------+-----------------------------------------------------
 pkey   | integer | not null default nextval('test_pkey_seq'::regclass)
 id     | integer |
Indexes:
    "test_pkey" PRIMARY KEY, btree (pkey)

数据插入

insert into test (id) values ('5'); 

查看桌子的内容

# select * from test;
 pkey | id
------+----
    1 |  5
(4 rows)

pkey是自动生成的。

添加列 (Tianjiacelie)

# alter table test add column id2 integer;

嗯,命令写得没问题,但是不能从其他控制台连接到postgreSQL。

psql -U postgres test
psql: FATAL:  Peer authentication failed for user "postgres"
cd /etc/postgresql/9.5/main
vim pg_hba.conf
local   all             postgres                                peer
local   all             postgres                                md5  

重新启动 PostgreSQL。

systemctrl restart postgresql

在另一个终端也连接上了。好的好的。


广告
将在 10 秒后关闭
bannerAds