]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manual/mysql.tex
Update
[bacula/docs] / docs / manual / mysql.tex
index 735d978abf6a691eea6d3e6e84f16e85642911a9..240b147dc330a6764c7a4957fdd8c918a1b90954 100644 (file)
@@ -1,23 +1,25 @@
 %%
 %%
 
-\section*{Installing and Configuring MySQL}
-\label{_ChapterStart}
+\chapter{Installing and Configuring MySQL}
+\label{MySqlChapter}
 \index[general]{MySQL!Installing and Configuring }
 \index[general]{Installing and Configuring MySQL }
-\addcontentsline{toc}{section}{Installing and Configuring MySQL}
 
-\subsection*{Installing and Configuring MySQL -- Phase I}
+\section{Installing and Configuring MySQL -- Phase I}
 \index[general]{Installing and Configuring MySQL -- Phase I }
 \index[general]{Phase I!Installing and Configuring MySQL -- }
-\addcontentsline{toc}{subsection}{Installing and Configuring MySQL -- Phase I}
 
-If you use the ./configure \verb{--{with-mysql=mysql-directory statement for
+If you use the ./configure \verb:--:with-mysql=mysql-directory statement for
 configuring {\bf Bacula}, you will need MySQL version 3.23.53 or later
 installed in the {\bf mysql-directory}.
-Bacula has been tested on MySQL version 4.1.12 and works fine.           
+Bacula has been tested on MySQL version 4.1.12 and works providing
+you are running it in the default installation that is compatible
+with MySQL 3.23.x.  If you are using one of the new modes such
+as ANSI/ISO compatibility, you may experience problems.
+
 If MySQL is installed in the standard system location, you need only enter
-{\bf \verb{--{with-mysql} since the configure program will search all the
+{\bf \verb:--:with-mysql} since the configure program will search all the
 standard locations.  If you install MySQL in your home directory or some
 other non-standard directory, you will need to provide the full path to it.
 
@@ -27,9 +29,36 @@ it on our machines. Please note that our configuration leaves MySQL without
 any user passwords. This may be an undesirable situation if you have other
 users on your system. 
 
-Please note that as of Bacula version 1.31, the thread safe version of the
-MySQL client library is used, and hence you must add the {\bf
-\verb{--{enable-thread-safe-client} option to the {\bf ./configure} as shown below: 
+The notes below describe how to build MySQL from the source tar files. If
+you have a pre-installed MySQL, you can return to complete the installation
+of Bacula, then come back to Phase II of the MySQL installation.  If you
+wish to install MySQL from rpms, you will probably need to install
+the following:
+
+\footnotesize
+\begin{verbatim}
+mysql-<version>.rpm
+mysql-server-<version>.rpm
+mysql-devel-<version>.rpm
+\end{verbatim}
+\normalsize
+The names of the packages may vary from distribution to
+distribution. It is important to have the devel package loaded as
+it contains the libraries and header files necessary to build
+Bacula.  There may be additional packages that are required to 
+install the above, for example, zlib and openssl.   
+
+Once these packages are installed, you will be able to build Bacula (using
+the files installed with the mysql package, then run MySQL using the
+files installed with mysql-server. If you have installed MySQL by rpms,
+please skip Phase I below, and return to complete the installation of
+Bacula, then come back to Phase II of the MySQL installation when indicated
+to do so.
+
+Beginning with Bacula version 1.31, the thread safe version of the
+MySQL client library is used, and hence you should add the {\bf
+\verb:--:enable-thread-safe-client} option to the {\bf
+./configure} as shown below:
 
 \begin{enumerate}
 \item Download MySQL source code from 
@@ -42,16 +71,16 @@ MySQL client library is used, and hence you must add the {\bf
 Note, the above command requires GNU tar. If you do not  have GNU tar, a
 command such as:
 
-{\bf zcat mysql-filename | tar xvf - 
+{\bf zcat mysql-filename | tar xvf - }  
 
-}  will probably accomplish the same thing. 
+will probably accomplish the same thing. 
 
 \item cd {\bf mysql-source-directory}
 
    where you replace {\bf mysql-source-directory} with the  directory name where
    you put the MySQL source code.  
 
-\item ./configure \verb{--{enable-thread-safe-client \verb{--{prefix=mysql-directory
+\item ./configure \verb:--:enable-thread-safe-client \verb:--:prefix=mysql-directory
 
    where you replace {\bf mysql-directory} with the directory  name where you
    want to install mysql. Normally for system  wide use this is /usr/local/mysql.
@@ -87,18 +116,16 @@ second phase of the MySQL installation are created during the Bacula
 Installation. 
 
 \label{mysql_phase2}
-\subsection*{Installing and Configuring MySQL -- Phase II}
+\section{Installing and Configuring MySQL -- Phase II}
 \index[general]{Installing and Configuring MySQL -- Phase II }
 \index[general]{Phase II!Installing and Configuring MySQL -- }
-\addcontentsline{toc}{subsection}{Installing and Configuring MySQL -- Phase
-II}
 
 At this point, you should have built and installed MySQL, or already have a
 running MySQL, and you should have configured, built and installed {\bf
 Bacula}. If not, please complete these items before proceeding. 
 
 Please note that the {\bf ./configure} used to build {\bf Bacula} will need to
-include {\bf \verb{--{with-mysql=mysql-directory}, where {\bf mysql-directory} is the
+include {\bf \verb:--:with-mysql=mysql-directory}, where {\bf mysql-directory} is the
 directory name that you specified on the ./configure command for configuring
 MySQL. This is needed so that Bacula can find the necessary include headers
 and library files for interfacing to MySQL. 
@@ -118,12 +145,11 @@ Now you will create the Bacula MySQL database and the tables that Bacula uses.
 \begin{enumerate}
 \item Start {\bf mysql}. You might want to use the {\bf startmysql}  script
    provided in the Bacula release.  
-\item cd \lt{}install-directory\gt{}
 
+\item cd \lt{}install-directory\gt{}
    This directory contains the Bacula catalog  interface routines.  
 
 \item ./grant\_mysql\_privileges
-
    This script creates unrestricted access rights for the user {\bf bacula}. 
    You may  want to modify it to suit your situation. Please
    note that none of the userids, including root, are password protected.  
@@ -131,16 +157,15 @@ Now you will create the Bacula MySQL database and the tables that Bacula uses.
    and to bacula. The program {\bf mysqladmin} can be used for this.
 
 \item ./create\_mysql\_database
-
-   This script creates the MySQL {\bf bacula} database.  The databases you create
-as well as the access databases  will be located in \lt{}install-dir\gt{}/var/
-in a subdirectory  with the name of the database, where \lt{}install-dir\gt{}
-is the  directory name that you specified on the {\bf \verb{--{prefix} option. This 
-can be important to know if you want to make a special backup  of the Bacula
-database or to check its size.  
+   This script creates the MySQL {\bf bacula} database.  The databases you
+   create as well as the access databases will be located in
+   \lt{}install-dir\gt{}/var/ in a subdirectory with the name of the
+   database, where \lt{}install-dir\gt{} is the directory name that you
+   specified on the {\bf \verb:--:prefix} option.  This can be important to
+   know if you want to make a special backup of the Bacula database or to
+   check its size.
 
 \item ./make\_mysql\_tables
-
    This script creates the MySQL tables used by {\bf Bacula}. 
 \end{enumerate}
 
@@ -160,10 +185,9 @@ select * from user;
 \end{verbatim}
 \normalsize
 
-\subsection*{Re-initializing the Catalog Database}
+\section{Re-initializing the Catalog Database}
 \index[general]{Database!Re-initializing the Catalog }
 \index[general]{Re-initializing the Catalog Database }
-\addcontentsline{toc}{subsection}{Re-initializing the Catalog Database}
 
 After you have done some initial testing with {\bf Bacula}, you will probably
 want to re-initialize the catalog database and throw away all the test Jobs
@@ -192,18 +216,18 @@ end of file mark on the volume so that Bacula can reuse it. Do so with:
 Where you should replace {\bf /dev/nst0} with the appropriate tape drive
 device name for your machine. 
 
-\subsection*{Linking Bacula with MySQL}
+\section{Linking Bacula with MySQL}
 \index[general]{Linking Bacula with MySQL }
 \index[general]{MySQL!Linking Bacula with }
-\addcontentsline{toc}{subsection}{Linking Bacula with MySQL}
+\index[general]{Upgrading}
 
 After configuring Bacula with 
 
-./configure \verb{--{enable-thread-safe-client \verb{--{prefix=\lt{}mysql-directory\gt{}
+./configure \verb:--:enable-thread-safe-client \verb:--:prefix=\lt{}mysql-directory\gt{}
 where \lt{}mysql-directory\gt{} is in my case {\bf /home/kern/mysql}, you may
 have to configure the loader so that it can find the MySQL shared libraries.
 If you have previously followed this procedure and later add the {\bf
-\verb{--{enable-thread-safe-client} options, you will need to rerun the {\bf
+\verb:--:enable-thread-safe-client} options, you will need to rerun the {\bf
 ldconfig} program shown below. If you put MySQL in a standard place such as
 {\bf /usr/lib} or {\bf /usr/local/lib} this will not be necessary, but in my
 case it is. The description that follows is Linux specific. For other
@@ -236,3 +260,30 @@ LDFLAGS="-lssl -lcyrpto" \
       <your-options>
 \end{verbatim}
 \normalsize
+
+\section{Installing MySQL from RPMs}
+\index[general]{MySQL!Installing from RPMs}
+\index[general]{Installing MySQL from RPMs}
+If you are installing MySQL from RPMs, you will need to install
+both the MySQL binaries and the client libraries.  The client
+libraries are usually found in a devel package, so you must
+install:
+
+\footnotesize
+\begin{verbatim}
+  mysql
+  mysql-devel
+\end{verbatim}
+\normalsize
+
+This will be the same with most other package managers too.
+
+\section{Upgrading MySQL}
+\index[general]{Upgrading MySQL }
+\index[general]{Upgrading!MySQL }
+\index[general]{Upgrading}
+If you upgrade MySQL, you must reconfigure, rebuild, and re-install 
+Bacula otherwise you are likely to get bizarre failures.  If you
+install from rpms and you upgrade MySQL, you must also rebuild Bacula.
+You can do so by rebuilding from the source rpm. To do so, you may need
+to modify the bacula.spec file to account for the new MySQL version.