blob: b8790e23bcc40106737c56395f1f48a5b815d18a (
plain) (
tree)
|
|
<!DOCTYPE html>
<html dir="ltr" lang="en">
<head>
<meta charset='utf-8'>
<title>Postgresql</title>
</head>
<body>
<a href="index.html">Tools Index</a>
<h1>Postgresql</h1>
<h2 id="install">1. Install Postgresql</h2>
<p>Install postgresql;</p>
<pre>
$ prt-get depinst postgresql
</pre>
<pre>
# mkdir /srv/pgsql/
# touch /var/log/postgresql
# chown postgres:postgres /srv/pgsql /var/log/postgresql
# sudo -u postgres initdb -D /srv/pgsql/data
</pre>
<p>Change <a href="conf/etc/rc.d/postgresql">/etc/rc.d/postgresql</a>;</p>
<pre>
#
# /etc/rc.d/postgresql: start, stop or restart PostgreSQL server postmaster
#
PG_DATA=/srv/pgsql/data
case "$1" in
start|stop|status|restart|reload)
sudo -u postgres pg_ctl -D "$PG_DATA" -l /var/log/postgresql "$1"
;;
*)
echo "usage: $0 start|stop|restart|reload|status"
;;
esac
# End of file
</pre>
<h2 id="config">2. Configure Server</h2>
<p>Create password for super user;</p>
<pre>
# su postgres
$ psql -U postgres
</pre>
<p>Edit
<a href="conf/srv/pgsql/data/pg_hba.conf">/srv/pgsql/data/pg_hba.conf</a>;
</p>
<pre>
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
#local all all trust
local all postgres ident
# IPv4 local connections:
hostssl all all 127.0.0.1/32 md5
# IPv6 local connections:
#host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres trust
#host replication postgres 127.0.0.1/32 trust
#host replication postgres ::1/128 trust
</pre>
<p>Start server and alter postgres password</p>
<pre>
# /etc/rc.d/postgresql start
</pre>
<pre>
postgres=# alter user postgres with password 'new_password';
</pre>
<h3 id="syslog">2.1. Configure syslog-ng</h3>
<p><a href="syslog-ng.html">Configure Syslog-ng</a>, check <a href="http://michael.otacoo.com/postgresql-2/postgres-settings-simple-syslog-configuration-with-syslog-ng/">Michael at otacoo</a> article. Example;</p>
<p>Edit /pgsql/data/<a href="../conf/srv/pgsql/data/postgresql.conf">postgresql.conf</a>;</p>
<pre>
log_destination = 'syslog' # Can specify multiple destinations
syslog_facility='LOCAL0'
syslog_ident='postgres'
log_connections = on
password_encryption=on
</pre>
<p>Create /etc/logrotate.d/postgres;</p>
<pre>
/var/log/pgsql {
weekly
compress
delaycompress
rotate 10
notifempty
create 660 postgres postgres
}
</pre>
<pre>
destination postgres { file("/var/log/pgsql"); };
filter f_postgres { facility(local0); };
log { source(s_log); filter(f_postgres); destination(postgres); };
</pre>
<h2 id="createuser">3. Create User</h2>
<p>Create a new user with createuser command;</p>
<pre>
$ sudo -u postgres createuser --pwprompt --encrypted \
--no-createrole --no-createdb flyspray
Enter password for new user:
Enter it again:
</pre>
<h2 id="createdb">4. Create Database</h2>
<p>Create a new database for new user with createdb command;</p>
<pre>
$ sudo -u postgres createdb --template=template0 --encoding=UTF8 \
--owner=flyspray db_flyspray
</pre>
<h2 id="dropdb">5. Drop Database</h2>
<p>Deleting database with dropdb command;</p>
<pre>
sudo -u postgres dropdb db_flyspray
</pre>
<h2 id="dropuser">6. Drop User</h2>
<p>Deleting user with dropuser command;</p>
<pre>
sudo -u postgres dropuser flyspray
</pre>
<h2 id="psql">7. Psql</h2>
<p>Lets check with psql, login with user postgres;</p>
<pre>
$ sudo -u postgres psql
</pre>
<p>First show help;</p>
<pre>
postgres=# \?
</pre>
<h3 id="listdb">7.1. List Databases and Roles</h3>
<p>List roles then list databases;</p>
<pre>
postgres=# \dg
postgres=# \l
</pre>
<h3 id="psqldb">7.2. Create Database</h3>
<pre>
postgres=# create database db_flyspray_ext owner flyspray encoding 'UTF-8' template template0;
</pre>
<h3 id="droptables">7.3. Drop Tables</h3>
<p>This example assumes that all tables,
are in public schema. First connect to database and
list tables;</p>
<pre>
postgres=# revoke SELECT on db_flyspray from flyspray;
</pre>
<pre>
postgres=# \c db_flyspray
postgres=# \dt
</pre>
<p>Drop all tables on public schema and recreate public schema;</p>
<pre>
db_flyspray=# drop schema public cascade;
db_flyspray=# create schema public;
</pre>
<h3 id="backup">7.4. Backup</h3>
<p>Backup Database</p>
<h3 id="backup">7.5. Restore</h3>
<pre>
$ psql db_flyspray < database_dump
</pre>
<a href="index.html">Tools Index</a>
<p>
This is part of the c9-doc Manual.
Copyright (C) 2016
c9 team.
See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
for copying conditions.</p>
</body>
</html>
|