注:在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
在另一个终端也连接上了。好的好的。