4 \chapter{MySQL Installation und Konfiguration}
6 \index[general]{MySQL!Installation und Konfiguration }
7 \index[general]{MySQL Installation und Konfiguration }
9 \section{MySQL Installation und Konfiguration -- Phase I}
10 \index[general]{MySQL Installation und Konfiguration -- Phase I }
11 \index[general]{Phase I!MySQL Installation und Konfiguration -- }
13 Wenn Sie bei der Konfiguration des Bacula-Quelltextes die Option
14 \verb:--:with-mysql=/Pfad/zu/MySQL angeben, muss MySQL in der Version
15 4.1 oder sp\"{a}ter auf Ihrem System, in /Pfad/zu/MySQL, installiert sein.
17 Falls Sie eine Standard-MySQL-Installation verwenden reicht es,
18 wenn Sie \verb:--:with-mysql angeben. Bacula wird den Pfad zu MySQL dann
19 selbst finden. Wenn MySQL zum Beispiel in Ihrem home-Verzeichnis
20 installiert ist, m\"{u}ssen Sie den vollen Pfad zu der
21 MySQL-Installation angeben.
23 Die Installation und Konfiguration von MySQL ist zwar nicht sehr schwierig,
24 kann aber beim ersten Mal doch verwirrend sein. Daher werden hier einmal die
25 notwendigen Schritte zu einer laufenden MySQL-Datenbank beschrieben.
26 Bitte beachten Sie, dass die MySQL-Datenbank-Anmeldungen nach der Installation
27 noch nicht durch Passw\"{o}rter gesch\"{u}zt sind. Falls Sie auf Ihrem
28 System andere lokale Benutzer haben, ist das nicht unbedingt w\"{u}nschenswert.
30 Als n\"{a}chstes folgen die Schritte, die n\"{o}tig sind, um MySQL aus
31 dem Quelltext zu kompilieren. Falls Sie MySQL schon installiert haben,
32 k\"{o}nnen Sie jetzt die Installation von Bacula fortsetzen, um hier sp\"{a}ter
33 mit der Phase II der MySQL-Installation weiterzumachen. Wenn Sie die MySQL-RPMs
34 installieren wollen, ben\"{o}tigen Sie diese Pakete:
39 mysql-server-<version>.rpm
40 mysql-devel-<version>.rpm
43 Die Namen k\"{o}nnen, je nach Distribution, auch abweichen.
44 Wichtig ist es, dass Sie auch das devel-Paket, das die header-Dateien
45 und Bibliotheken enth\"{a}lt, die notwendig sind um Bacula zu
46 \"{u}bersetzen, installieren. Eventuell sind auch noch weitere
47 Pakete zu installieren die von den MySQL-RPMs benutzt werden,
48 zum Beispiel zlib und openssl. Nachdem diese Pakete installiert
49 sind, k\"{o}nnen Sie Bacula aus dem Quelltext \"{u}bersetzen.
52 \item downloaden Sie den MySQL-Quelltext von
53 \elink{www.mysql.com/downloads}{http://www.mysql.com/downloads}
55 \item und entpacken Sie ihn mit einem Kommando wie zum Beispiel:
57 {\bf tar xvfz mysql-filename}
59 Falls Sie kein GNU-tar auf Ihrem System haben, k\"{o}nnen Sie auch
61 {\bf zcat mysql-filename | tar xvf - }
63 ausf\"{u}hren, das Ergebnis ist das selbe.
65 \item cd {\bf MySQL-Quelltext-Verzeichnis}
67 ersetzen Sie "`MySQL-Quelltext-Verzeichnis"' mit dem Verzeichnis,
68 in das Sie gerade den Quelltext entpackt haben.
72 \item ./configure \verb:--:enable-thread-safe-client \verb:--:prefix=MySQL-Verzeichnis
74 Seit der Bacula-Version 1.31 wird die thread-safe-Version der
75 MySQL-Client-Bibliotheken verwendet. Daher muss die Option
76 {\bf \verb:--:enable-thread-safe-client} beim Konfigurieren des
77 MySQL-Quelltextes angegeben werden.
78 Der MySQL-Client ben\"{o}tigt zudem die gzip-Kompressions-Bibliotheken
79 {\bf libz.a} oder {\bf libz.so}. Wenn Sie RPM-Pakete verwenden, finden Sie
80 diese in {\bf libz-devel} und bei Debian hei{\ss}t dieses Paket {\bf zlib1g-dev}
81 (auf anderen Distributionen wird der Name \"{a}hnlich sein).
83 Ersetzen Sie "`MySQL-Verzeichnis"' mit dem Pfad, in den MySQL installiert werden soll.
84 Normalerweise /usr/local/mysql f\"{u}r systemweite Installation oder zum Beispiel
85 /home/bacula/mysql damit der Benutzer bacula eine eigene Datenbank zur Verf\"{u}gung hat.
87 Bitte beachten Sie, dass Sie das "`MySQL-Verzeichnis"' auch beim konfigurieren
88 des Bacula-Quelltextes mit der Option {\bf \verb:--:with-mysql=MySQL-Verzeichnis}
93 startet das Kompilieren des Quelltextes und wird einige Zeit ben\"{o}tigen
97 installiert alle ausf\"{u}hrbaren Dateien, Bibliotheken und anderen
98 ben\"{o}tigten Dateien in das angegebene "`MySQL-Verzeichnis"'.
100 \item ./scripts/mysql\_install\_db
102 erzeugt die MySQL-Datenbanken die f\"{u}r die Benutzer-Autorisierung erforderlich sind.
103 Dieses Script liegt auch im "`MySQL-Verzeichnis"' unter bin/.
107 An diesem Punkt, fahren Sie jetzt bitte mit der Installation von Bacula fort.
108 Nachdem Bacula installiert ist, lesen Sie hier unter "`Phase II"' weiter.
109 Einige Scripte, die Sie f\"{u}r die zweite Phase der MySQL-Installation und
110 Konfiguration ben\"{o}tigen, werden erst bei der Installation von Bacula erstellt.
113 \section{MySQL Installation und Konfiguration -- Phase II}
114 \index[general]{MySQL Installation und Konfiguration -- Phase II }
115 \index[general]{Phase II!MySQL Installation und Konfiguration -- }
117 An diesem Punkt sollten Sie bereits MySQL und Bacula kompiliert
118 und installiert haben. Falls nicht, schlie{\ss}en Sie bitte diese
119 beiden Schritte erst ab, bevor Sie hier weitermachen.
121 Bei der Installation von Bacula werden mehrere Scripte in das
122 Installations-Verzeichnis kopiert, mit denen Sie verschiedene
123 \"{A}nderungen an der Datenbank durchf\"{u}hren k\"{o}nnen.
124 Diese Scripte haben Namen im Format *\_bacula\_*
125 (z.B. create\_bacula\_database)und dienen dazu die Datenbank
126 zu initialisieren, zu aktualisieren oder zu l\"{o}schen.
127 Diese Scripte sind auch im Bacula-Quelltext-Verzeichnis, nach
128 der Ausf\"{u}hrung des "`./configure"'-Scripts, unter
129 \lt{}bacula-src\gt{}/src/cats zu finden. Wenn Sie sich, zum
130 Beispiel, das Script create\_bacula\_database n\"{a}her ansehen
131 werden Sie merken, dass dieses Script einfach nur
132 create\_mysql\_database ausf\"{u}hrt. Alle Scripte die *\_bacula\_*
133 heissen, dienen nur der Bequemlichkeit. Es spielt keine Rolle
134 mit welcher Datenbank Sie den Bacula-Quelltext \"{u}bersetzt haben,
135 das Script create\_bacula\_database wird immer die f\"{u}r Sie
136 richtige Datenbank erstellen.
138 Die folgenden Schritte sind n\"{o}tig um die MySQL-Datenbank und Tabellen
139 zu erstellen, die Bacula benutzt:
142 \item Starten Sie {\bf mysql}. Dazu k\"{o}nnen Sie auch das Script {\bf startmysql}
143 benutzen, dass Bacula mitinstalliert.
145 \item cd \lt{}Bacula-Installations-Verzeichnis\gt{}
146 In diesem Verzeichnis finden Sie die Bacula-Datenbank-Scripte.
148 \item ./grant\_bacula\_privileges
149 Dieses Script erm\"{o}glicht dem Benutzer "`bacula"' uneingeschr\"{a}nkten
150 Zugriff auf die Datenbank. Eventuell m\"{u}ssen Sie es anpassen, um es auf
151 Ihre Umgebung anzupassen. Bitte beachten Sie auch, dass nach der Installation
152 kein Datenbank-Benutzer, auch root, ein Passwort gesetzt hat. Falls das
153 f\"{u}r Sie zu unsicher ist, k\"{o}nnen Sie mit dem Kommando "`mysqladmin"'
154 den Benutzern Passw\"{o}rter zuweisen.
156 \item ./create\_bacula\_database
157 Dieses Script erzeugt die Bacula-Katalog-Datenbank. Diese Datenbank,
158 und auch die bei der Installation angelegte MySQL-interne Benutzer-Datenbank,
159 liegt danach im Verzeichnis var/ unterhalb des "`MySQL-Verzeichnis"'
160 das Sie bei der Konfiguration des MySQL-Quelltextes mit der Option
161 {\bf \verb:--:prefix} angegeben haben. Dieser Pfad zu den
162 Datenbank-Dateien kann wichtig sein, wenn Sie diese Dateien auf speziellem
163 Weg sichern wollen oder falls Sie wissen m\"{o}chten, welche Gr\"{o}{\ss}e
166 \item ./make\_bacula\_tables
167 Dieses Script legt die Tabellen an die Bacula ben\"{o}tigt.
170 Jedes dieser Scripte erlaubt es Ihnen Optionen mit auf der Kommandozeile
171 zu \"{u}bergeben. Das kann n\"{u}tzlich sein, wenn Sie zum Beispiel einen
172 Benutzer oder Passwort zum Zugriff auf die Datenbank angeben m\"{u}ssen.
173 So ist es m\"{o}glich auf der Kommandozeile beispielsweise {\bf -u root} anzugeben,
174 um gen\"{u}gend Rechte zur Erstellung der Bacula-Datenbank zu haben.
176 Um einen genaueren Blick auf die oben gesetzten Zugriffsrechte f\"{u}r
177 den Benutzer bacula innerhalb der Datenbank zu werfen, k\"{o}nnen Sie
178 folgende Kommandos ausf\"{u}hren:
182 <MySQL-Verzeichnis>/bin/mysql -u root mysql
187 \section{Re-Initialisierung der Katalog-Datenbank}
188 \index[general]{Datenbank!Re-Initialisierung der Katalog- }
189 \index[general]{Re-Initialisierung der Katalog-Datenbank }
191 Nachdem Sie einige anf\"{a}ngliche Tests mit Bacula gemacht haben, wollen
192 Sie eventuell Ihre Katalog-Datenbank komplett leeren, um alle gelaufenen
193 Test-Backups aus der Datenbank zu entfernen. Um das zu erreichen,
198 cd <install-directory>
204 Bitte bedenken Sie, dass dabei alle Informationen unwiderruflich
205 aus der Datenbank gel\"{o}scht werden. Falls Sie auch beschriebene
206 Volumes wiederverwenden wollen, m\"{u}ssen Sie das Volume-Label
207 \"{u}berschreiben damit Bacula sie erneut benutzen kann.
208 Das erreichen Sie durch:
212 (stop Bacula or unmount the drive)
213 mt -f /dev/nst0 rewind
218 hierbei m\"{u}ssen Sie {\bf /dev/nst0} durch das Device ersetzen,
219 dem Ihr Tapelaufwerk entspricht.
221 \section{Bacula mit MySQL linken}
222 \index[general]{Bacula mit MySQL linken }
223 \index[general]{MySQL!linken Bacula mit }
226 Nach der MySQL-Quelltext-Konfiguration mit:
228 ./configure \verb:--:enable-thread-safe-client \verb:--:prefix=\lt{}MySQL-Verzeichnis\gt{}
229 wobei "`MySQL-Verzeichnis"' in diesem Beispiel {\bf /home/bacula/mysql} ist,
230 m\"{u}ssen Sie Ihrem Betriebssystem mitteilen wo die MySQL-Bibliotheken zu
231 finden sind. Falls Sie MySQL in einem Standard-Pfad installiert haben, wie
232 zum Beispiel {\bf /usr/lib} oder {\bf /usr/local/lib}, ist dies nicht n\"{o}tig.
233 In diesem Beispiel ist es aber notwendig den Pfad {\bf /home/bacula/mysql}
234 dem Loader-Proze{\ss} f\"{u}r dynamische Bibliotheken bekannt zu machen.
235 Die folgende Beschreibung ist Linux-spezifisch, bei anderen Betriebssystemen
236 lesen Sie bitte deren Dokumentation um dieses Ziel zu erreichen.
238 Als erstes m\"{u}ssen Sie die Datei {\bf /etc/ld.so.conf} editieren
239 und am Ende eine neue Zeile mit dem entsprechenden Pfad hinzuf\"{u}gen.
241 In diesem Beispiel: "`/home/bacula/mysql/lib/mysql"'
242 danach muss der Cache des Loader-Proze{\ss}es mit {\bf /sbin/ldconfig}
245 Wenn Sie MySQL auf eine neuere Version updaten \"{a}ndern eventuell
246 einige der Bibliotheken ihre Namen, dann m\"{u}ssen Sie den Loader-Cache
247 wiederum mit {\bf /sbin/ldconfig} aktualisieren. Das Gleiche gilt
248 wenn Sie MySQL mit anderen Optionen neu kompilieren und sich dadurch
249 die MySQL-Bibliotheken \"{a}ndern, zum Beispiel, weil Sie beim ersten
250 kompilieren die ben\"{o}tigte Option \verb:--:enable-thread-safe-client
253 Eventuell kennt Ihr System auch eine Umgebungsvariable die zu diesem Zweck
254 gesetzt werden kann. Auf Solaris kann man die Variable
255 LD\_LIBRARY\_PATH dazu benutzen. In diesem Beispiel setzt man sie dazu auf:
257 LD\_LIBRARY\_PATH=/home/bacula/mysql/lib/mysql
259 Falls Sie zus\"{a}tzlich die Verschl\"{u}ssellung in MySQL aktiviert haben,
260 ist es m\"{o}glich, dass Sie {\bf -lssl -lcrypto} mit an den Linker
261 \"{u}bergeben m\"{u}ssen. Dazu k\"{o}nnen Sie entweder die LDFLAGS-Definition
262 exportieren, oder sie direkt beim Aufruf von ./configure angeben:
266 LDFLAGS="-lssl -lcyrpto" \
272 \section{MySQL RPM-Installation}
273 \index[general]{MySQL!RPM-Installation}
274 \index[general]{MySQL RPM-Installation}
275 Wenn Sie die MySQL-RPMs installieren wollen, ben\"{o}tigen Sie
276 sowohl das eigentlich MySQL- als auch das Paket, dass die Client-
277 Bibliotheken enth\"{a}lt, normalerweise das devel-Paket.
278 Sie m\"{u}ssen also diese beiden Pakete installieren:
287 Bei den meisten anderen Paket-Managern wird das \"{a}hnlich aussehen.
288 Nach der Installation der Pakete m\"{u}ssen Sie die oben genannten
289 Bacula-Scripte zur Datenbank-Einrichtung ausf\"{u}hren.
291 \section{MySQL updaten}
292 \index[general]{MySQL updaten }
293 \index[general]{MySQL!updaten }
294 \index[general]{Update}
295 Um Ihre MySQL-Installation zu aktualisieren, m\"{u}ssen Sie
296 es neu konfigurieren, kompilieren und installieren. Andernfalls
297 kann es sein, dass bei Bacula merkw\"{u}rdige Fehler auftreten.
298 Auch nach der Aktualisierung der MySQL-RPMs ist es notwendig
299 Bacula neu zu bauen. Das k\"{o}nnen Sie einfach, mit den
300 entsprechenden RPM-Kommandos, \"{u}ber das Bacula-Source-RPM
301 ereichen. Eventuell m\"{u}ssen Sie aber vorher die bacula.spec
302 anpassen, damit es mit der neuen MySQL-Version funktioniert.