Diese Seite ist nicht editierbar. Sie können den Quelltext sehen, jedoch nicht verändern. Kontaktieren Sie den Administrator, wenn Sie glauben, dass hier ein Fehler vorliegt. ====== postgres Basics ====== https://computingforgeeks.com/how-to-install-postgresql-13-on-ubuntu/ ====== Shell Zugang ====== <code> thommie@db2b:~$ sudo su postgres </code> <code> postgres@db2b:/home/thommie$ psql psql (13.6 (Ubuntu 13.6-1.pgdg20.04+1)) Type "help" for help. postgres=# </code> \l listet alle DBs Zu einer DB verbinden <code> postgres=# \c openproject postgres You are now connected to database "openproject" as user "postgres". </code> \dt listet alle Tabellen Schemata: https://www.postgresqltutorial.com/postgresql-administration/postgresql-schema/ Das Standard Schema ist public Alle Tabellen löschen <code> DO $$ DECLARE r RECORD; BEGIN FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP EXECUTE 'DROP TABLE ' || quote_ident(r.tablename) || ' CASCADE'; END LOOP; END $$; </code> \du listet alle User User Passwort ändern <code> ALTER ROLE [username] WITH PASSWORD 'xxxx'; </code> Zugriffsrechte auf Datenbank <code> GRANT ALL ON DATABASE [dbname] TO [username]; postgres=# GRANT ALL ON DATABASE keycloak TO keycloak; GRANT </code> \s command history \q DB shell beenden ====== Dump der Datenbanken ====== Login auf Postgress Server, sudo nach postgres, Wechsel ins Home Dir von postgres (wg. Schreibrechten für sqwl File <code> root@db2b:/home/thommie# sudo su postgres postgres@db2b:/home/thommie$ cd ~ postgres@db2b:~$ pwd /var/lib/postgresql </code> mit psql \l Namen aller DBs auflisten <code> postgres@db2b:~$ psql psql (13.6 (Ubuntu 13.6-1.pgdg20.04+1)) Type "help" for help. postgres=# \l </code> Danach Datenbanken dumpen: <code> pg_dump pixelfed >> pixelfed_tokoeka.sql </code> Datenbank löschen <code> $ dropdb your_database </code> ====== Verbindungstest ====== Test einer postgres Verbindung pg_isready als Teil von postgresql-client <code> pg_isready -d <db_name> -h <host_name> -p <port_number> -U <db_user> root@docker2:/var/discourse# pg_isready -d discourse -h 10.10.10.18 -p 5432 -U discourse 10.10.10.18:5432 - Verbindungen werden angenommen </code> ====== Import der Datenbanken ====== <code> psql -U postgres -W -d keycloak -f keycloak_tokoeka.sql </code> ====== Alte Daten löschen ====== Datenbank <code> drop DATABASE onlyoffice; </code> User/Rolle Auflisten der User <code> \du </code> Löschen eines Users <code> drop user IF EXISTS dendrite; </code> ====== Postgres und UTF8 ====== Standardmässig werden neue Datenbanken mit Zeichenkondierung SQL_ASCII angelegt. Das passt meistens, aber nicht immer. Mit dieser methode werden DBs mit UTF8 angelegt: https://www.shubhamdipt.com/blog/how-to-change-postgresql-database-encoding-to-utf8/ ===== Für template1 das encoding auf UTF8 ändern ===== <code> postgres=# UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1'; postgres=# DROP DATABASE template1; postgres=# CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UTF8'; postgres=# UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1'; postgres=# \c template1; You are now connected to database "template1" as user "postgres". template1=# VACUUM FREEZE; </code> Neu angelegte DBs auf Basis von template1 haben danach utf8 encoding CKG Edit postgres.txt Zuletzt geändert: 05/03/2024 - 10:52von 127.0.0.1