====== PostgreSQL ======
http://www.postgresql.org | http://postgres.cz
Tahák - http://postgres.cz/files/tahak_postgresql.pdf
===== Nástroje =====
http://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools
* http://www.pgmodeler.com.br/
* http://www.pgadmin.org/
* http://www.adminer.org/cs/
* http://www.navicat.com/
===== Úprava locale pro výchozí české kódování UTF-8 =====
LANG="cs_CZ.UTF-8"
LC_ALL="cs_CZ.UTF-8"
LANGUAGE="cs_CZ"
#LANG="en_US.UTF-8"
LANG="cs_CZ.UTF-8"
LC_ALL="cs_CZ.UTF-8"
SYSFONT="latarcyrheb-sun16"
===== Instalace na CentOS 7.X =====
shell# yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
shell# yum install postgresql94-server postgresql94-contrib
shell# /usr/pgsql-9.4/bin/postgresql94-setup initdb
shell# systemctl enable postgresql-9.4.service
shell# systemctl start postgresql-9.4.service
**Adresáře**
* /usr/pgsql-9.4
* /var/lib/pgsql/9.4/data
===== Instalace na CentOS 6.X =====
http://www.postgresql.org/download/linux/redhat/
shell# rpm -i http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
shell# yum install postgresql93-server postgresql93-contrib
shell# service postgresql-9.3 initdb
shell# chkconfig postgresql-9.3 on
shell# service postgresql-9.3 start
**Adresáře**
* /usr/pgsql-9.3
* /var/lib/pgsql/9.3/data
===== Vytvoření dalšího uživatele =====
Název servisní databáze = postgres.
[blazek@pg ~]$ su
Password:
[root@pg blazek]# su - postgres
-bash-4.1$ createuser blazek
===== Vytvoření databáze =====
[blazek@pg ~]$ su
Password:
[root@pg blazek]# su - postgres
-bash-4.1$ createdb test --locale=cs_CZ.UTF-8 -e UTF-8
CREATE DATABASE test LC_COLLATE 'cs_CZ.UTF-8' LC_CTYPE 'cs_CZ.UTF-8';
COMMENT ON DATABASE test IS 'UTF-8';
-bash-4.1$
===== Přihlášení do SQL konzole =====
[blazek@pg ~]$ psql postgres
psql (9.3.4)
Pro získání nápovědy napište "help".
postgres=>
===== Opuštění SQL konzole =====
postgres=> \q
===== Změna databáze =====
postgres=> \connect dbname
postgres=> \c dbname
===== Odinstalace PostgreSQL =====
shell# yum remove postgres*
shell# rm -rf /usr/pgsql-9.3
shell# rm -rf /var/lib/pgsql
===== Vzdálený přístup =====
Pro vzdálený přístup k PostgreSQL je nutné nastavit následující. Ve výchozím nastavení je PostgreSQL přístup pouze z localhost.
**Nastavení hesla pro uživatele postgres**
[blazek@pg ~]$ su -
Heslo:
[root@pg ~]# su - postgres
-bash-4.1$ psql postgres
psql (9.3.4)
Pro získání nápovědy napište "help".
postgres=# ALTER USER postgres with password 'secure-password';
ALTER ROLE
postgres=#
**Záloha konfigurace** (PostgreSQL Client Authentication Configuration File)
shell# cp /var/lib/pgsql/9.3/data/pg_hba.conf /var/lib/pgsql/9.3/data/pg_hba.conf-backup
**Doplnit do konfigurace IP adresu odkud se bude vzdáleně přistupovat**
Nastavení pro šifrované připojení, při autentizací se předává šifrované heslo.
# The first field is the connection type: "local" is a Unix-domain
# socket, "host" is either a plain or SSL-encrypted TCP/IP socket,
# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a
# plain TCP/IP socket.
#
# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi",
# "krb5", "ident", "peer", "pam", "ldap", "radius" or "cert". Note that
# "password" sends passwords in clear text; "md5" is preferred since
# it sends encrypted passwords.
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 remote connection (example)
host all all 192.168.100.100/32 md5
host all all 127.0.0.1/32 md5
**Nastavení interface, na kterém PostgreSQL naslouchá**
# default = localhost
# listen_addresses = 'localhost'
# pro vsechny interfaces
# listen_addresses = '*'
# pro konkretni interface
# listen_addresses = '192.168.100.1'
# pro localhost a konkretni interface (oddeluje se carkou)
listen_addresses = 'localhost,192.168.100.1'
**Restart PostgreSQL**
shell# service postgresql-9.3 restart
**Test připojení**
shell# psql -U postgres -h 192.168.100.1
===== SQL =====
==== Smazání všech tabulek ====
DROP SCHEMA public CASCADE;