sudo dnf install postgresql-server postgresql-contrib
sudo systemctl enable postgresql sudo postgresql-setup --initdb --unit postgresql sudo systemctl start postgresql
sudo -u postgres psql CREATE USER nazwa_uzytkownika WITH PASSWORD 'haslo_uzytkownika';
CREATE DATABASE mojadb OWNER nazwa_uzytkownika; \q
psql -U nazwa_uzytkownika -d mojadb -W
sudo firewall-cmd --permanent --add-port=5432/tcp sudo firewall-cmd --add-port=5432/tcp sudo firewall-cmd --reload
mojadb=> \l
mojadb=> \dt
Ponadto tabela będzie zawierać pola:
mojadb=> create table test_table (no int, name text);
01
Fedora
mojadb=> insert into test_table (no,name) values (01,'Fedora');
mojadb=> select * from test_table;
mojadb=> drop table test_table;
Wykonujemy z wiersza poleceń systemu.
user@fedora:~$ dropdb mojadb
Jeżeli nie znamy hasła to modyfikujemy plik pg_hba.conf aby dostać się do bazy bez hasła.
pg_hba.conf
sudo nano /var/lib/pgsql/data/pg_hba.conf
Zmieniamy linię
# "local" is for Unix domain socket connections only local all all md5
na linię
# "local" is for Unix domain socket connections only local all all trust
Po modyfikacji restart usługi
sudo systemctl restart postgresql
Logowanie bez hasła
user@fedora:~$ psql -U postgres
Zmiana hasła
postgres=# ALTER USER postgres WITH PASSWORD 'nowe_haslo';
Po zmianie hasła cofamy zmiany w konfiguracji pliku pg_hba.conf.
Jeżeli uprawniony user do bazy mojadb istnieje możemy ponownie ją utworzyć poniższym poleceniem z poziomu użytkownika postgres.
postgres@fedora:~$ createdb mojadb -O nazwa_uzytkownika
postgres@fedora:~$ createuser bomba
Hasło użytkownika zmieniamy w bazie
ALTER USER bomba WITH PASSWORD 'bombas';
mojadb=> CREATE TABLE tblPrzykladowa ( id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, nazwa TEXT NOT NULL, opis VARCHAR(255), cena NUMERIC(10,2) CHECK (cena >= 0), ilosc INTEGER DEFAULT 0, waga REAL, dostepny BOOLEAN DEFAULT TRUE, data_dodania DATE DEFAULT CURRENT_DATE, czas_dodania TIME DEFAULT CURRENT_TIME, data_czas TIMESTAMP DEFAULT CURRENT_TIMESTAMP, ip INET, email VARCHAR(255) UNIQUE, plik BYTEA );
mojadb=> CREATE TABLE miejscowosci ( id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, nazwa TEXT UNIQUE NOT NULL ); CREATE TABLE mieszkaniec ( id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, imie TEXT NOT NULL, nazwisko TEXT NOT NULL, miejscowosc_id INTEGER NOT NULL REFERENCES miejscowosci(id) ON DELETE CASCADE, CONSTRAINT unikalny_mieszkaniec UNIQUE (imie, nazwisko) );
DO $$ DECLARE r RECORD; BEGIN FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'public') LOOP EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE'; END LOOP; END $$;