(Click to open topic with navigation)
This documentation shows how to set up and configure Moab to connect to a MySQL database using the MySQL ODBC driver. This document assumes the necessary MySQL and ODBC drivers have already been installed and configured.
To set up and configure Moab to connect to a MySQL database using the MySQL ODBC driver, do the following:
This solution has been tested and works with these versions:
For a Debian-based system, unixodbc-dev is required, but it might not be required for Red Hat flavors (such as CentOS and RHEL).
Download and install the ODBC version of Moab. Install and configure Moab as normal but add the following in the Moab configuration file (moab.cfg):
USEDATABASE ODBC # Turn on stat profiling USERCFG[DEFAULT] ENABLEPROFILING=TRUE GROUPCFG[DEFAULT] ENABLEPROFILING=TRUE QOSCFG[DEFAULT] ENABLEPROFILING=TRUE CLASSCFG[DEFAULT] ENABLEPROFILING=TRUE ACCOUNTCFG[DEFAULT] ENABLEPROFILING=TRUE NODECFG[DEFAULT] ENABLEPROFILING=TRUE
Create the database in MySQL using the MySQL database dump contained in the moab-db.sql file. This file is located in the contrib/sql directory in the root of the binaries.
Run the following command:
mysql -u root -p < moab-db-mysql-create.sql
Configure the MySQL and ODBC driver. The /etc/odbcinst.ini file should contain content similar to what follows:
[MySQL] Description = ODBC for MySQL Driver = /usr/lib/odbc/libmyodbc.so
Run updatedb && locate libmyodbc to find the MySQL ODBC client driver. You could also check the libmyodbc package that was installed.
Configure Moab to use the MySQL ODBC driver. Moab uses an ODBC datastore file to connect to MySQL using ODBC. This file must be located in the Moab home directory (/opt/moab by default) and be named dsninfo.dsn, which is used by Moab. If the following content, which follows the standard ODBC driver file syntax, is not already included in the /etc/odbc.ini file, make sure that you include it. Also, include the same content in the dsninfo.dsn file.
[ODBC] Driver = MySQL USER = <username> PASSWORD = <password> Server = localhost Database = Moab Port = 3306
The user should have read/write privileges on the Moab database.
The preceding example file tells ODBC to use the MySQL driver, username <username>, password <password>, and to connect to MySQL running on the localhost on port 3306. ODBC uses this information to connect to the database called Moab.
Test the ODBC to MySQL connection by running the isql command, which reads the /etc/odbc.ini file:
$ isql -v ODBC +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> show tables; +-----------------------------------------------------------------+ | Tables_in_Moab | +-----------------------------------------------------------------+ | EventType | | Events | | GeneralStats | | GenericMetrics | | Moab | | NodeStats | | NodeStatsGenericResources | | ObjectType | | mcheckpoint | +-----------------------------------------------------------------+ SQLRowCount returns 10 10 rows fetched SQL>
If you encounter any errors using the isql command, there was a problem setting up the ODBC to MySQL connection. Try the following debugging steps to resolve the issue:
[root#] odbcinst -j
unixODBC 2.2.12
DRIVERS............: /etc/unixODBC/odbcinst.ini
SYSTEM DATA SOURCES: /etc/unixODBC/odbc.ini
USER DATA SOURCES..: /home/adaptive/.odbc.ini
$ strace isql -v ODBC noting the location in which isql expects the odbc.ini and odbcinst.ini files.
> moabd is a safe and recommended method of starting Moab if things are not installed in their default locations.
Related topics