\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
-configuring {\bf Bacula}, you will need MySQL version 3.23.33 or later
-installed in the {\bf mysql-directory} (we are currently using 3.23.56). 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 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.
+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 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
+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.
Installing and Configuring MySQL is not difficult but can be confusing the
first time. As a consequence, below, we list the steps that we used to install
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
+Beginning with 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:
+\verb:--:enable-thread-safe-client} option to the {\bf ./configure} as shown below:
\begin{enumerate}
\item Download MySQL source code from
\item cd {\bf mysql-source-directory}
where you replace {\bf mysql-source-directory} with the directory name where
-you put the MySQL source code.
+ 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.
-In my case, I use \~{}kern/mysql.
+ want to install mysql. Normally for system wide use this is /usr/local/mysql.
+ In my case, I use \~{}kern/mysql.
\item make
\item make install
This will put all the necessary binaries, libraries and support files into
-the {\bf mysql-directory} that you specified above.
+ the {\bf mysql-directory} that you specified above.
\item ./scripts/mysql\_install\_db
complete the installation. Please note, the installation files used in the
second phase of the MySQL installation are created during the Bacula
Installation.
-\label{mysql_phase2}
+\label{mysql_phase2}
\subsection*{Installing and Configuring MySQL -- Phase II}
\index[general]{Installing and Configuring MySQL -- Phase II }
\index[general]{Phase II!Installing and Configuring MySQL -- }
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.
\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 {\bf kern}, {\bf kelvin},
-and {\bf bacula}. You may want to modify it to suit your situation. Please
-note that none of these userids including root are password protected.
+ 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.
+ If you need more security, please assign a password to the root user
+ 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}
\normalsize
Please note that all information in the database will be lost and you will be
-starting from scratch. If you have written on any Volumes, you must write and
+starting from scratch. If you have written on any Volumes, you must write an
end of file mark on the volume so that Bacula can reuse it. Do so with:
\footnotesize
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
/home/kern/mysql/lib/mysql then rebuild the loader's cache with:
/sbin/ldconfig If you upgrade to a new version of {\bf MySQL}, the shared
-library names will probably changes, and you must re-run the {\bf
+library names will probably change, and you must re-run the {\bf
/sbin/ldconfig} command so that the runtime loader can find them.
Alternatively, your system my have a loader environment variable that can be
<your-options>
\end{verbatim}
\normalsize
+
+\subsection*{Installing MySQL from RPMs}
+\index[general]{MySQL!Installing from RPMs}
+\index[general]{Installing MySQL from RPMs}
+\addcontentsline{toc}{subsection}{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 ususally 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.
+
+\subsection*{Upgrading MySQL}
+\index[general]{Upgrading MySQL }
+\index[general]{Upgrading!MySQL }
+\addcontentsline{toc}{subsection}{Upgrading MySQL}
+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.