Da Sie sich nicht mit der Produktionsumgebung herumschlagen können, möchten Sie manchmal eine bestimmte Version der DB-Umgebung in einer anderen Umgebung vorbereiten. In einem solchen Fall ist es ein Memo für mich.
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
systemctl start [email protected]
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
Legen Sie die pkey-Spalte als Primärschlüssel fest.
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)
Wenn postgreSQL den Primärschlüssel festlegt, wird automatisch die Tabelle "test_pkey_seq" erstellt.
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 ist automatisch.
# alter table test add column id2 integer;
Ich kann keine Verbindung zu postgreSQL von einer anderen Konsole aus herstellen, obwohl der Befehl korrekt ist.
psql -U postgres test
psql: FATAL: Peer authentication failed for user "postgres"
cd /etc/postgresql/9.5/main
vim pg_hba.conf
pg_nba.Vor dem Ändern von conf
local all postgres peer
pg_nba.Nach dem Ändern von conf
local all postgres md5
Starten Sie postgreSQL neu.
systemctrl restart postgresql
Ich war an einem anderen Terminal angeschlossen. OK OK.
Recommended Posts