Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
postgres [27/07/2025 - 15:16] – thommie_netzwissen.de | postgres [27/07/2025 - 15:16] (aktuell) – thommie_netzwissen.de | ||
---|---|---|---|
Zeile 7: | Zeile 7: | ||
psql Cheat Sheet: [[https:// | psql Cheat Sheet: [[https:// | ||
< | < | ||
- | thommie@db2b: | ||
+ | thommie@db2b: | ||
</ | </ | ||
- | < | + | < |
+ | \l | ||
</ | </ | ||
Zeile 19: | Zeile 19: | ||
listet alle Datenbanken | listet alle Datenbanken | ||
- | * * \c verbindet zu einer Datenbank\c verbindet zu einer Datenbank | + | |
- | * * \dt zeigt die Tabellen nach einer Verbindung\dt zeigt die Tabellen nach einer Verbindung | + | |
- | * * \d und \d+ zeigt die Spalten einer Tabelle\d und \d+ zeigt die Spalten einer Tabelle | + | |
- | * * \du Benutzerrollen\du Benutzerrollen | + | * * * \du Benutzerrollen\du Benutzerrollen* \du Benutzerrollen\du Benutzerrollen |
===== Datenbank und User anlegen ===== | ===== Datenbank und User anlegen ===== | ||
- | < | + | < |
+ | create database sqlmail; | ||
create user sqlmail with encrypted password ' | create user sqlmail with encrypted password ' | ||
grant all privileges on database sqlmail to sqlmail; | grant all privileges on database sqlmail to sqlmail; | ||
- | |||
</ | </ | ||
Zeile 39: | Zeile 39: | ||
WER greift gerade auf die DB zu? | WER greift gerade auf die DB zu? | ||
- | < | + | < |
+ | SELECT usename, datname, state FROM pg_stat_activity WHERE usename=' | ||
</ | </ | ||
Zeile 46: | Zeile 46: | ||
Alle aktiven Verbindungen zu dieser DB trennen | Alle aktiven Verbindungen zu dieser DB trennen | ||
- | < | + | < |
+ | SELECT pg_terminate_backend(pid) | ||
FROM pg_stat_activity | FROM pg_stat_activity | ||
WHERE datname = ' | WHERE datname = ' | ||
- | |||
</ | </ | ||
Zeile 55: | Zeile 55: | ||
Danach kann man die Datenbank duplizieren, | Danach kann man die Datenbank duplizieren, | ||
- | < | + | < |
+ | CREATE DATABASE newdb WITH TEMPLATE originaldb OWNER dbuser; | ||
</ | </ | ||
Zeile 70: | Zeile 70: | ||
Nach "\c discourse2": | Nach "\c discourse2": | ||
< | < | ||
+ | |||
DO $$ DECLARE | DO $$ DECLARE | ||
r RECORD; | r RECORD; | ||
Zeile 77: | Zeile 78: | ||
END LOOP; | END LOOP; | ||
END $$; | END $$; | ||
- | |||
</ | </ | ||
Zeile 89: | Zeile 89: | ||
neuen User anlegen (" | neuen User anlegen (" | ||
< | < | ||
+ | |||
postgres=# CREATE ROLE discourse2; | postgres=# CREATE ROLE discourse2; | ||
CREATE ROLE | CREATE ROLE | ||
postgres=# | postgres=# | ||
- | |||
</ | </ | ||
Zeile 98: | Zeile 98: | ||
Passwort setzen | Passwort setzen | ||
- | < | + | < |
+ | ALTER ROLE [username] WITH PASSWORD ' | ||
</ | </ | ||
Zeile 107: | Zeile 107: | ||
nur login | nur login | ||
- | < | + | < |
+ | ALTER ROLE discourse2 LOGIN; | ||
</ | </ | ||
Zeile 114: | Zeile 114: | ||
Weitere Privilegien: | Weitere Privilegien: | ||
- | < | + | < |
+ | GRANT privilege_list | ALL | ||
ON table_name | ON table_name | ||
TO role_name; | TO role_name; | ||
- | |||
</ | </ | ||
Zeile 123: | Zeile 123: | ||
privilege_list kann [[https:// | privilege_list kann [[https:// | ||
< | < | ||
+ | |||
GRANT ALL ON DATABASE [dbname] TO [username]; | GRANT ALL ON DATABASE [dbname] TO [username]; | ||
postgres=# GRANT ALL ON DATABASE keycloak TO keycloak; | postgres=# GRANT ALL ON DATABASE keycloak TO keycloak; | ||
GRANT | GRANT | ||
- | |||
</ | </ | ||
Zeile 133: | Zeile 133: | ||
Löschen eines Users | Löschen eines Users | ||
- | < | + | < |
+ | drop user IF EXISTS dendrite; | ||
</ | </ | ||
Zeile 142: | Zeile 142: | ||
Alle Tabellen löschen | Alle Tabellen löschen | ||
- | < | + | < |
+ | DO $$ | ||
DECLARE | DECLARE | ||
r RECORD; | r RECORD; | ||
Zeile 150: | Zeile 151: | ||
END LOOP; | END LOOP; | ||
END $$; | END $$; | ||
- | |||
</ | </ | ||
Zeile 156: | Zeile 156: | ||
check | check | ||
< | < | ||
+ | |||
SELECT tablename FROM pg_tables WHERE schemaname = ' | SELECT tablename FROM pg_tables WHERE schemaname = ' | ||
- | |||
</ | </ | ||
Zeile 163: | Zeile 163: | ||
===== Daten-Aktionen ===== | ===== Daten-Aktionen ===== | ||
- | < | + | < |
+ | do $$ declare | ||
r record; | r record; | ||
begin | begin | ||
Zeile 170: | Zeile 171: | ||
end loop; | end loop; | ||
end $$; | end $$; | ||
- | |||
</ | </ | ||
Zeile 176: | Zeile 176: | ||
Komplette Datenbank löschen | Komplette Datenbank löschen | ||
< | < | ||
+ | |||
drop DATABASE onlyoffice; | drop DATABASE onlyoffice; | ||
- | |||
</ | </ | ||
Zeile 191: | Zeile 191: | ||
====== Dump einer Datenbank als sql file ====== | ====== Dump einer Datenbank als sql file ====== | ||
- | * - Login auf postgres ServerLogin auf postgres Server | + | |
- | * - sudo nach postgressudo nach postgres | + | |
- | * - Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File)Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File) | + | * * - Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File)Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File)- Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File)Wechsel ins Home Dir von postgres (wg. Schreibrechten für sql File) |
- | < | + | < |
+ | root@db2b:/ | ||
postgres@db2b:/ | postgres@db2b:/ | ||
postgres@db2b: | postgres@db2b: | ||
/ | / | ||
- | |||
</ | </ | ||
Zeile 205: | Zeile 205: | ||
mit psql \l Namen aller DBs auflisten | mit psql \l Namen aller DBs auflisten | ||
- | < | + | < |
+ | postgres@db2b: | ||
psql (13.6 (Ubuntu 13.6-1.pgdg20.04+1)) | psql (13.6 (Ubuntu 13.6-1.pgdg20.04+1)) | ||
Type " | Type " | ||
postgres=# \l | postgres=# \l | ||
- | |||
</ | </ | ||
Zeile 215: | Zeile 215: | ||
Danach die Datenbanken dumpen: | Danach die Datenbanken dumpen: | ||
- | < | + | < |
+ | pg_dump pixelfed>> | ||
</ | </ | ||
Zeile 222: | Zeile 222: | ||
Datenbank löschen | Datenbank löschen | ||
- | < | + | < |
+ | $ dropdb your_database | ||
</ | </ | ||
Zeile 231: | Zeile 231: | ||
Test einer postgres Verbindung: pg_isready ist Teil von postgresql-client | Test einer postgres Verbindung: pg_isready ist Teil von postgresql-client | ||
- | < | + | < |
+ | pg_isready -d < | ||
</ | </ | ||
Zeile 238: | Zeile 238: | ||
Praktisch: | Praktisch: | ||
- | < | + | < |
+ | root@docker2:/ | ||
10.10.10.18: | 10.10.10.18: | ||
root@docker2:/ | root@docker2:/ | ||
- | |||
</ | </ | ||
Zeile 247: | Zeile 247: | ||
====== Import der Datenbanken ====== | ====== Import der Datenbanken ====== | ||
- | < | + | < |
+ | psql -U postgres -W -d keycloak -f keycloak_tokoeka.sql | ||
</ | </ | ||
Zeile 258: | Zeile 258: | ||
[[https:// | [[https:// | ||
< | < | ||
+ | |||
postgres=# UPDATE pg_database SET datistemplate = FALSE WHERE datname = ' | postgres=# UPDATE pg_database SET datistemplate = FALSE WHERE datname = ' | ||
postgres=# DROP DATABASE template1; | postgres=# DROP DATABASE template1; | ||
Zeile 265: | Zeile 266: | ||
You are now connected to database " | You are now connected to database " | ||
template1=# VACUUM FREEZE; | template1=# VACUUM FREEZE; | ||
- | |||
</ | </ |