StoreGrid Backup Server With MySQL As Backend Database:
Installing and Configuring MySQL on Linux
Overview
StoreGrid now supports MySQL as a backend database to store all the clients' backup metadata information. Unlike
StoreGrid using SQLite embedded database as its backend database, the MySQL database Server is external to the
StoreGrid backup server application. Using a client-server database as the backend database rather than an
embedded database would provider better scalability and performance. It also enables third party applications to
directly query StoreGrid's metadata for integration with those applications. To get StoreGrid to work with MySQL as
a backend database, you need to install MySQL Server either in the same machine where StoreGrid backup server is
installed or in another dedicated machine where you wish to store the StoreGrid's metadata information
Note : The following steps are also applicable for StoreGrid Replication Server using the MySQL database as a
backend database.
Install MySQL Server
Install MySQL Server 5.0.67 in the machine where you want to store the StoreGrid Backup Server's metadata.
1. Download the MySQL server (mysql-5.0.67.tar.gz) file from the URL
http://dev.mysql.com/downloads/mysql/5.0.html
2. Extract the tar file by executing 'tar -xzvf mysql-5.0.67.tar.gz' 3. Go the extracted folder by executing 'cd mysql-5.0.67'
4. Execute './configure --enable-thread-safe-client --enable-gui=no' (Assuming you have all the appropriate stuff like gcc, g++, make, etc.,)
5. Execute 'make'
6. Execute 'make install' as root user. By default, this will install MySQL in /usr/local.
7. Copy the MySQL configuration file by executing 'cp support-files/my-medium.cnf /etc/my.cnf' as root user.
8. Open the '/etc/my.cnf' file and edit the settings like mysql.sock file location, storage database engine and maximum number of connections as follows :
[mysqld]
socket=/tmp/mysql.sock default-storage_engine=innodb
max_connections=800
9. Execute 'mysql_install_db' to install and set up the system tables. 10. Change owner for the files by executing 'chown -R root .' as a root user 11. Start MySQL Server by executing 'mysqld_safe --user=root &'
12. Set the password for MySQL Server by executing 'mysqladmin -u root password
[mysql_root_password]' where [mysql_root_password] is the password for the MySQL root user.
Install MySQL Client
StoreGrid Backup server uses the MySQL client program to connect to the MySQL Server. Hence, you need to install
the MySQL client in the backup server.
Note: If you have installed the MySQL Server in the same machine as StoreGrid backup server itself, then please
ignore this step.
1. Extract the MySQL installer file by executing 'tar -xzvf mysql-5.0.67.tar.gz' 2. Go to the extracted folder by executing 'cd mysql-5.0.67'
3. Execute the command './configure enable-thread-safe-client enable-gui=no without-server --enable-gui=no'
4. Execute 'make'
5. Execute 'make install' as root user
Install UnixODBC
Install the unixODBC in the backup server
1. Download the unixODBC installer file (unixODBC-2.2.11.tar.gz) from the URL : http://www.unixodbc.org/
2. Extract the installer file by executing 'tar -zxvf unixODBC-2.2.11.tar.gz' 3. Execute './configure --enable-gui=no'
4. Execute 'make'
5. Execute 'make install' as a root user
Install MySQL Connector
Install the MySQL Connector in the backup server
http://dev.mysql.com/downloads/connector/odbc/3.51.html
2. Extract the file by executing 'tar -xzvf mysql-connector-odbc-3.51.15r409.tar.gz' 3. Go to the extracted folder by executing 'cd mysql-connector-odbc-3.51.15r409' 4. Execute './configure --with-mysql-path=/usr/local/ --enable-gui=no' 5. Execute 'make'
6. Execute 'make install' as a root user. This installs the Driver library /usr/local/lib/libmyodbc3-3.51.15.so
Configure the MySQL Connector
Configure the MySQL Connector in the backup server as follows :
1. Execute the command 'odbcinst -j'
2. Note the path of the 'odbcinst.ini' file for DRIVERS. By default, it is '/usr/local/etc/odbcinst.ini' 3. Login as root and open the file 'odbcinst.ini'
4. Append the following content to the file.
[ODBC] Trace = No
Trace File = /tmp/sql.log Pooling = Yes [MySQL] Description = Driver = /usr/local/lib/libmyodbc3-3.51.15.so Driver64 = Setup = Setup64 = UsageCount =1 CPTimeout =300 CPReuse =1
Note : If the path for the 'libmyodbc3-3.51.15.so' is different in Step 2, please specify the appropriate path
in the 'odbcinst.ini' file. If the ODBC Driver [ODBC] is already added in the file, please enable connection
pooling by adding 'Pooling=Yes'
Create a separate database for StoreGrid in the MySQL server.
1. Login to the machine where MySQL Server is running.
2. Execute the command 'mysql -u root -p' and enter the password.
3. Create the StoreGrid database by executing 'create database [database name] collate latin1_general_cs;' where [database name] is the name of the database.
Create System DSN
Create a system DSN in the backup server to access the StoreGrid database in the MySQL Server.
1. Execute the command 'odbcinst -j'
2. Note the path for 'odbc.ini' file for SYSTEM DATA SOURCES.
3. Login as root and open the file 'odbc.ini' (By default, file is will be '/usr/local/etc/odbc.ini'). 4. Append the following content to the file
[sgserver] Driver = MySQL DATABASE = StoreGridDB PWD = password123 SERVER = lintest UID = root
In the above example file, a DSN with the name 'sgserver' is created for the database 'StoreGridDB' in the MySQL
server running in 'lintest' machine with the user name as 'root' and password as 'password123'.
Test connectivity with MySQL Server
After creating the MySQL driver and DSN in the backup server, check the connectivity from backup server to the
MySQL Server
Execute the following command 'isql -v [dsn name] [user name] [password]' and check if you are able to
connect the MySQL Server from the backup server.
Specify the attributes during StoreGrid installation
After creating the DSN in the backup server, you need to specify DSN name, database name, user name and
Troubleshooting Tips
Getting error "cannot find correct Qt headers" while compiling unixODBC/MySQL
Server/mysql connector
Solution : Include '--enable-gui=no' option while ./configure after extracting the installer file.
Getting error 'configure: error: Can't find mysql_config in ...' while compiling the mysql
connector
Solution : Include '--with-mysql-path=/path/to/mysql' option in the ./configure
error: Can't find X includes. Please check your installation and add the correct paths or run
configure with --enable-gui=no!
Solution : Include '--enable-gui=no' option during ./configure
'make error : ltdl.h: No such file or directory' while compiling mysql-connector in Linux
machines.
Solution : Install libltdl3-dev package in your machine and then try installing MySQL Server. You can download
libltdl from the URL : http://rpmfind.net/linux/rpm2html/search.php?query=libltdl.so.3
'make error : ltdl.h: No such file or directory' while compiling mysql-connector in FreeBSD
machines.
Solution : Install libtool15 package in your machine by the following steps :
1. Login as root 2. cd /usr/ports/devel/libtool15 3. make 4. make install 5. cd /usr/ports/devel/libtool15/work/libtool-1.5.22 6. make 7. make install
No curses/termcap library found
Solution : Install ncurses library by executing the following command as root : 'yum install ncurses-devel.i386'
StoreGrid is not started (or) repeatly crashes after startup
Solution : Stop StoreGrid application and start StoreGrid in command line by executing './bin/StoreGrid' from
[StoreGrid_Home] folder. Note the console print from the terminal. Please follow the solutions when the console
1. Can't connect to local MySQL server...
Make sure that the MySQL server is running in the machine where MySQL is installed. Execute 'netstat -an
| grep 3306' (for linux) or 'netstat -an | find "3306"' (for Windows) in the machine where MySQL server is
running and check if the MySQL port 3306 (default mysql port) is in LISTEN state. If MySQL is not
running, please start the MySQL Server and then try starting StoreGrid.
2. Data source name not found...
Make sure that you have given the correct DSN name during the StoreGrid installation. Please check the
DSN by executing the command 'isql -v [dsn name] [user name] [password]' and check if you are able to
connect to the MySQL server with the DSN name.
3. Access denied for user...
Check if you have given the correct user name and password for the MySQL Server during StoreGrid
installation. Please check this by executing the command 'isql -v [dsn name] [user name] [password]' and
check if you are able to connect to the MySQL server with the user name and password.
4. Host 'xxxxx' is not allowed to connect to this MySQL server...
Provide the required permission in the MySQL to allow the backup server to connect the database. You
can do this by executing 'GRANT ALL PRIVILEGES ON *.* TO '[user name]'@'[backup server machine
name]' IDENTIFIED BY '[password]' WITH GRANT OPTION;' in the MySQL prompt in the machine where