=head1 NAME

B<mysqlsetup> - Sets up the MySQL or MariaDB database for xCAT to use.

=head1 SYNOPSIS


B<mysqlsetup> {B<-h>|B<--help>}

B<mysqlsetup> {B<-v>|B<--version>}

B<mysqlsetup> {B<-i>|B<--init>} [B<-f>|B<--hostfile>] [B<-o>|B<--odbc>] [B<-L>|B<--LL>] [B<-V>|B<--verbose>]

B<mysqlsetup> {B<-u>|B<--update>} [B<-f>|B<--hostfile>] [B<-o>|B<--odbc>] [B<-L>|B<--LL>] [B<-V>|B<--verbose>]

B<mysqlsetup> {B<-o>|B<--odbc>} [B<-V>|B<--verbose>]

B<mysqlsetup> {B<-L>|B<--LL>} [B<-V>|B<--verbose>]

=head1 DESCRIPTION

B<mysqlsetup> - Sets up the MySQL or MariaDB database (linux only for MariaDB) for xCAT to use. The mysqlsetup script is run on the Management Node as root after the MySQL code or MariaDB code has been installed. Before running the init option, the MySQL server should be stopped, if it is running.  The xCAT daemon, xcatd, must be running, do not stop it. No xCAT commands should be run during the init process, because we will be migrating the xCAT database to MySQL or MariaDB and restarting the xcatd daemon as well as the MySQL daemon. For full information on all the steps that will be done, read the "Configure MySQL and Migrate xCAT Data to MySQL" sections in

B<Setting_Up_MySQL_as_the_xCAT_DB>

Two passwords must be supplied for the setup,  a password for the xcatadmin id and a password for the root id in the MySQL database.  These will be prompted for interactively, unless the environment variables XCATMYSQLADMIN_PW and  XCATMYSQLROOT_PW are set to the passwords for the xcatadmin id and root id in the database,resp.

Note below we refer to MySQL but it works the same for MariaDB.

=head1 OPTIONS

=over 6

=item B<-h|--help>

Displays the usage message.

=item B<-v|--version>

Displays the release version of the code.

=item B<-V|--verbose>

Displays verbose messages.

=item B<-i|--init>

The init option is used to setup a xCAT database on an installed MySQL or MariaDB server for xCAT to use. The mysqlsetup script will check for the installed MariaDB server rpm first and will use MariaDB if it is installed.   This involves creating the xcatdb database, the xcatadmin id, allowing access to the xcatdb database by the Management Node. It customizes the my.cnf configuration file for xcat and starts the MySQL server.  It also backs up the current xCAT database and restores it into the newly setup xcatdb MySQL database.  It creates the /etc/xcat/cfgloc file to point the xcatd daemon to the MySQL database and restarts the xcatd daemon using the database.
On AIX, it additionally setup the mysql id and group and corrects the permissions in the MySQL install directories. For AIX, you should be using the MySQL rpms available from the xCAT website. For Linux, you should use the MySQL or MariaDB rpms shipped with the OS. You can chose the -f and/or the -o option, to run after the init.

=item B<-u|--update>

To run the update option,  you must first have run the -i option and have xcat successfully running on the MySQL database. You can chose the -f and/or the -o option, to update.

=item B<-f|--hostfile>

This option runs during update, it will take all the host from the input file (provide a full path) and give them database access to the xcatdb in  MySQL for the xcatadmin id. Wildcards and ipaddresses may be used. xCAT  must have been previously successfully setup to use MySQL. xcatadmin and MySQL root password are required.

=item B<-o|--odbc>

This option sets up the ODBC  /etc/../odbcinst.ini, /etc/../odbc.ini and the .odbc.ini file in roots home directory will be created and initialized to run off the xcatdb MySQL database.
See "Add ODBC Support" in
Setting_Up_MySQL_as_the_xCAT_DB

=item B<-L|--LL>

Additional database configuration specifically for the LoadLeveler product.
See "Add ODBC Support" in
Setting_Up_MySQL_as_the_xCAT_DB

=back

=head1 ENVIRONMENT VARIABLES

=over 2

=item *
B<XCATMYSQLADMIN_PW> - the password for the xcatadmin id that will be assigned in the MySQL database.

=item *
B<XCATMYSQLROOT_PW> - the password for the root id that will be assigned to the MySQL root id, if the script creates it.  The password to use to run MySQL command to the database as the MySQL root id.  This password may be different than the unix root password on the Management Node.

=back

=head1 EXAMPLES

=over 2

=item 1.

To setup MySQL for xCAT to run on the MySQL xcatdb database :

 mysqlsetup -i

=item 2.

Add hosts from /tmp/xcat/hostlist that can access the xcatdb database in MySQL:

 mysqlsetup -u -f /tmp/xcat/hostlist

Where the file contains a host per line, for example:

         node1
         1.115.85.2
         10.%.%.%
         nodex.cluster.net

=item 3.

To setup the ODBC for MySQL xcatdb database access :

 mysqlsetup -o

=item 4.

To setup MySQL for xCAT and add hosts from /tmp/xcat/hostlist and setup the ODBC in Verbose mode:

 mysqlsetup -i -f /tmp/xcat/hostlist -o -V

=back
