2       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 
   3    <title>2.5. Anpassung der PostgreSQL-Konfiguration</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.5.6.1: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch02.html" title="Kapitel 2. Installation und Grundkonfiguration"><link rel="prev" href="ch02s04.html" title="2.4. kivitendo-Konfigurationsdatei"><link rel="next" href="ch02s06.html" title="2.6. Webserver-Konfiguration"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">2.5. Anpassung der PostgreSQL-Konfiguration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.html">Zurück</a> </td><th width="60%" align="center">Kapitel 2. Installation und Grundkonfiguration</th><td width="20%" align="right"> <a accesskey="n" href="ch02s06.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="2.5. Anpassung der PostgreSQL-Konfiguration"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Anpassung-der-PostgreSQL-Konfiguration"></a>2.5. Anpassung der PostgreSQL-Konfiguration</h2></div></div></div><p>PostgreSQL muss auf verschiedene Weisen angepasst werden.</p><p>Dies variert je nach eingesetzter Distribution, da distributionsabhängig unterschiedliche Strategien beim Upgrade der Postgres Version eingesetzt werden.
 
   4             Als Hinweis einige Links zu den drei Distribution (Stand Dezember 2018):</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
 
   5                   <a class="ulink" href="https://fedoraproject.org/wiki/PostgreSQL" target="_top">Fedora (Postgres-Installation unter Fedora)</a>
 
   6                </p></li><li class="listitem"><p>
 
   7                   <a class="ulink" href="https://help.ubuntu.com/lts/serverguide/postgresql.html" target="_top">Ubuntu (Infos für Postgres für die aktuelle LTS Version)</a>
 
   8                </p></li><li class="listitem"><p>
 
   9                   <a class="ulink" href="https://de.opensuse.org/PostgreSQL" target="_top">OpenSuSE (aktuell nur bis Version OpenSuSE 13 verifiziert)</a>
 
  10                </p></li></ul></div><div class="sect2" title="2.5.1. Zeichensätze/die Verwendung von Unicode/UTF-8"><div class="titlepage"><div><div><h3 class="title"><a name="Zeichens%C3%A4tze-die-Verwendung-von-UTF-8"></a>2.5.1. Zeichensätze/die Verwendung von Unicode/UTF-8</h3></div></div></div><p>kivitendo setzt zwingend voraus, dass die Datenbank
 
  11         Unicode/UTF-8 als Encoding einsetzt. Bei aktuellen
 
  12         Serverinstallationen braucht man hier meist nicht einzugreifen.</p><p>Das Encoding des Datenbankservers kann überprüft werden. Ist das
 
  13         Encoding der Datenbank "template1" "Unicode" bzw. "UTF-8", so braucht
 
  14         man nichts weiteres diesbezüglich unternehmen. Zum Testen:</p><pre class="programlisting">su postgres
 
  16 exit </pre><p>Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
 
  17         Unicode-Encoding anzulegen und diesen zu verwenden. Unter Debian und
 
  18         Ubuntu kann dies z.B. für PostgreSQL 9.3 mit dem folgenden Befehl
 
  19         getan werden:</p><pre class="programlisting">pg_createcluster --locale=de_DE.UTF-8 --encoding=UTF-8 9.3 clustername</pre><p>Die Datenbankversionsnummer muss an die tatsächlich verwendete
 
  20         Versionsnummer angepasst werden.</p><p>Unter anderen Distributionen gibt es ähnliche Methoden.</p><p>Das Encoding einer Datenbank kann in <span class="command"><strong>psql</strong></span> mit
 
  21         <code class="literal">\l</code> geprüft werden.</p></div><div class="sect2" title="2.5.2. Änderungen an Konfigurationsdateien"><div class="titlepage"><div><div><h3 class="title"><a name="%C3%84nderungen-an-Konfigurationsdateien"></a>2.5.2. Änderungen an Konfigurationsdateien</h3></div></div></div><p>In der Datei <code class="filename">postgresql.conf</code>, die je nach
 
  22         Distribution in verschiedenen Verzeichnissen liegen kann (z.B.
 
  23         <code class="filename">/var/lib/pgsql/data/</code> oder
 
  24         <code class="filename">/etc/postgresql/</code>), muss sichergestellt werden,
 
  25         dass TCP/IP-Verbindungen aktiviert sind. Das Verhalten wird über den
 
  26         Parameter <code class="varname">listen_address</code> gesteuert. Laufen
 
  27         PostgreSQL und kivitendo auf demselben Rechner, so kann dort der Wert
 
  28         <code class="literal">localhost</code> verwendet werden. Andernfalls müssen
 
  29         Datenbankverbindungen auch von anderen Rechnern aus zugelassen werden,
 
  30         was mit dem Wert <code class="literal">*</code> geschieht.</p><p>In der Datei <code class="filename">pg_hba.conf</code>, die im gleichen
 
  31         Verzeichnis wie die <code class="filename">postgresql.conf</code> zu finden
 
  32         sein sollte, müssen die Berechtigungen für den Zugriff geändert
 
  33         werden. Hier gibt es mehrere Möglichkeiten. Sinnvoll ist es nur die
 
  34         nötigen Verbindungen immer zuzulassen, für eine lokal laufende
 
  35         Datenbank zum Beispiel:</p><pre class="programlisting">local all kivitendo password
 
  36 host all kivitendo 127.0.0.1 255.255.255.255 password</pre></div><div class="sect2" title="2.5.3. Erweiterung für servergespeicherte Prozeduren"><div class="titlepage"><div><div><h3 class="title"><a name="Erweiterung-f%C3%BCr-servergespeicherte-Prozeduren"></a>2.5.3. Erweiterung für servergespeicherte Prozeduren</h3></div></div></div><p>In der Datenbank <code class="literal">template1</code> muss die
 
  37         Unterstützung für servergespeicherte Prozeduren eingerichet werden.
 
  38         Melden Sie sich dafür als Benutzer “postgres” an der Datenbank an:
 
  39         </p><pre class="programlisting">su - postgres
 
  40 psql template1</pre><p> führen Sie die folgenden Kommandos aus:</p><pre class="programlisting">CREATE EXTENSION IF NOT EXISTS plpgsql;
 
  41 \q</pre><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>
 
  42                   <code class="literal">CREATE EXTENSION</code> ist seit Version 9.1 die
 
  43           bevorzugte Syntax um die Sprache <code class="literal">plpgsql</code>
 
  44           anzulegen. In diesen Versionen ist die Extension meist auch schon
 
  45           vorhanden. Sollten Sie eine ältere Version von Postgres haben,
 
  46           benutzen Sie stattdessen den folgenden Befehl.</p><pre class="programlisting">CREATE LANGUAGE 'plpgsql';
 
  47 \q</pre></td></tr></table></div></div><div class="sect2" title="2.5.4. Erweiterung für Trigram Prozeduren"><div class="titlepage"><div><div><h3 class="title"><a name="Erweiterung-f%C3%BCr-trigram"></a>2.5.4. Erweiterung für Trigram Prozeduren</h3></div></div></div><p>Ab Version 3.5.1 wird die Trigram-Index-Erweiterung benötigt.
 
  48         Diese wird mit dem SQL-Updatescript
 
  49         sql/Pg-upgrade2/trigram_extension.sql und Datenbank-Super-Benutzer
 
  50         Rechten automatisch installiert. Dazu braucht der
 
  51         DatenbankSuperbenutzer "postgres" ein Passwort.</p><pre class="programlisting">su - postgres
 
  56 \q</pre><p>Benutzername Postgres und Passwort können jetzt beim Anlegen
 
  57         einer Datenbank bzw. bei Updatescripten, die SuperuserRechte
 
  58         benötigen, eingegeben werden.</p><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>
 
  59                   <code class="literal">pg_trgm</code> ist je nach Distribution nicht im
 
  60           Standard-Paket von Postgres enthalten. Ein </p><pre class="programlisting">select * from pg_available_extensions where name ='pg_trgm';</pre><p>
 
  61           in template1 sollte entsprechend erfolgreich sein. Andernfalls muss
 
  62           das Paket nachinstalliert werden, bspw. bei debian/ubuntu
 
  63           </p><pre class="programlisting">apt install postgresql-contrib</pre><p>
 
  64                </p></td></tr></table></div></div><div class="sect2" title="2.5.5. Datenbankbenutzer anlegen"><div class="titlepage"><div><div><h3 class="title"><a name="Datenbankbenutzer-anlegen"></a>2.5.5. Datenbankbenutzer anlegen</h3></div></div></div><p>Wenn Sie nicht den Datenbanksuperuser “postgres” zum Zugriff
 
  65         benutzen wollen, so sollten Sie bei PostgreSQL einen neuen Benutzer
 
  66         anlegen. Ein Beispiel, wie Sie einen neuen Benutzer anlegen
 
  67         können:</p><p>Die Frage, ob der neue User Superuser sein soll, können Sie mit
 
  68         nein beantworten, genauso ist die Berechtigung neue User (Roles) zu
 
  69         generieren nicht nötig.</p><pre class="programlisting">su - postgres
 
  70 createuser -d -P kivitendo
 
  71 exit</pre><p>Wenn Sie später einen Datenbankzugriff konfigurieren, verändern
 
  72         Sie den evtl. voreingestellten Benutzer “postgres” auf “kivitendo”
 
  73         bzw. den hier gewählten Benutzernamen.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s04.html">Zurück</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Nach oben</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s06.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">2.4. kivitendo-Konfigurationsdatei </td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top"> 2.6. Webserver-Konfiguration</td></tr></table></div></body></html>