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 1. Download the MySQL Connector from the URL :
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 StoreGrid database
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 password during the StoreGrid installation in the backup server.
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 print are as follows :
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 MySQL Server is installed.