MySQL

NST provide an easy and convenient means to setup a mysql database engine. Once that an initial instance of a mysql database is configured and running, one can then manage the database engine with extremely flexible tool called phpMyAdmin which is found in Chapter 2, The Web User Interface (WUI).

The setup_mysql script is shown below. It allows for the runtime database engine to be created and run from a RAM disk or a pre-existing directory. The directory (i.e. runtime directory) can be a mount point on a locally attached disk drive or a networked file system. This allows for permanent database storage when using NST.

        
[root@probe root]# /usr/local/bin/setup_mysql -h

Usage: setup_mysql [-s] [-d] [-rd <RAM device>] [-rds <RAM disk size (MB)>]
                   [-rmp <RAM mount point>] [-rdir <runtime directory>] [-v] [-h]

     This script is used to create an initial MySQL multi-user, multi-threaded SQL database
     server configuration for a NST system. The default configuration will create a 64MB RAM
     disk for the MySQL's database files at directory location: /mnt/ram4/var/lib/mysql.
     The MySQL database server engine will be started by this script.

     A "root" password will be assigned to the database. Any additional configuration to
     the database will be the responsibility of the database administrator.

  -s | --stop
     Use this optional parameter to stop an already running MySQL database server. If this
     option is not used and a MySQL database server is already running, this script will
     terminate leaving the existing database server running.

  -d | --delete
     Use this optional parameter to delete an existing MySQL database directory
     structure. This will allow one to startup a new fresh MySQL database.
     ** Note: This option will destroy any previous database data that may exist. Make any
              necessary backups prior to using this option.

  -rd <RAM device> | --ram-device <RAM device>
     Use this optional parameter to change the default RAM device that will be used for this
     instance of the MySQL database data files. Available RAM device names on NST:
     "/dev/ram0 - /dev/ram9". A cooresponding mount point: "/mnt/ram0 - /mnt/ram9"
     will be automatically selected for the RAM device. One can use the following optional
     parameter: "-rmp <mount point>" to change mount point location for the selected RAM
     device.
     Default: "/dev/ram4"

  -rds <RAM dsk size (MB)> | --ram-disk-size <RAM disk size (MB)>
     Use this optional parameter to change the default RAM disk size in MegaBytes (MB) that
     will be used for MySQL database data files.
     Default: "64"
     ** Note: Use a reasonable value and make sure you to not exceed your available system RAM.
              The system memory utility: "free" can be used to help make your determination.

  -rmp <mount point> | --ram-mount-point <mount point>
     Use this optional parameter to change the selected RAM device's: "-rd <RAM device>"
     mount point for the MySQL database data files.
     Default: "/mnt/ram4"

  -rdir <runtime directory> | --runtime-directory <runtime directory>
     One can use this optional parameter to force the setup script to use an existing
     directory on a locally attached disk drive or a mounted network file system and
     bypass the creation of a RAM disk. To do this, make sure the directory initially
     exists prior to running this script.
     Example:         Mount Point: "/dev/hda1" mount at: "/probe1" type ext3 (rw)
                        Directory: "/probe1/mysql"
                              Use: "-rdir /probe1/mysql" to create the top level runtime
                                   directory structure the MySQL database data files.
              Directory Structure: mysql  => /probe1/mysql/var/lib/mysql

  -v | --verbose
     This optional switch will enable verbose output. Without this switch set, minimal
     output from the execution of this script will be displayed.

  -h | --help
     Displays this help information.

        
      

Note

This script only configures and starts an initial instance of the mysql database. It also creates a database administration user: "root" with an assigned password set to the NST clear text password. The clear text password for user: "root" can be found from the environment variable: "NSTCTPASSWD" which is generated by sourcing the NST configuration file: "/etc/nst.conf". No additional user tables or databases are created. Any configuration beyond this point will be the responsibility of the database administrator.

The following example creates a mysql database at the runtime directory location: "/mnt/ext3/mysql". In this example, the NST probe system has a locally attached disk drive which was formatted using an Linux Ext3 file system.

        
[root@probe root]# setup_mysql -rdir /mnt/ext3/mysql -v
*** Creating a new MySQL database file structure at: "/mnt/ext3/mysql/var/lib/mysql"...

*** Starting up the MySQL database server...
Initializing MySQL database:                               [  OK  ]
Starting MySQL:                                            [  OK  ]

*** Assigning a password for database user: "root"...

*** Successfully started up a MySQL database server...

*** List MySQL Database Directory...
/mnt/ext3/mysql/var/lib:
total 12
drwxr-xr-x    3 root     root         4096 Jun 21 13:01 .
drwxr-xr-x    3 root     root         4096 Jun 21 13:01 ..
drwxr-xr-x    4 mysql    mysql        4096 Jun 21 13:01 mysql

/mnt/ext3/mysql/var/lib/mysql:
total 16
drwxr-xr-x    4 mysql    mysql        4096 Jun 21 13:01 .
drwxr-xr-x    3 root     root         4096 Jun 21 13:01 ..
drwx------    2 mysql    mysql        4096 Jun 21 13:01 mysql
srwxrwxrwx    1 mysql    mysql           0 Jun 21 13:01 mysql.sock
drwx------    2 mysql    mysql        4096 Jun 21 13:01 test

/mnt/ext3/mysql/var/lib/mysql/mysql:
total 112
drwx------    2 mysql    mysql        4096 Jun 21 13:01 .
drwxr-xr-x    4 mysql    mysql        4096 Jun 21 13:01 ..
-rw-rw----    1 mysql    mysql        8778 Jun 21 13:01 columns_priv.frm
-rw-rw----    1 mysql    mysql           0 Jun 21 13:01 columns_priv.MYD
-rw-rw----    1 mysql    mysql        1024 Jun 21 13:01 columns_priv.MYI
-rw-rw----    1 mysql    mysql        8982 Jun 21 13:01 db.frm
-rw-rw----    1 mysql    mysql         302 Jun 21 13:01 db.MYD
-rw-rw----    1 mysql    mysql        3072 Jun 21 13:01 db.MYI
-rw-rw----    1 mysql    mysql        8641 Jun 21 13:01 func.frm
-rw-rw----    1 mysql    mysql           0 Jun 21 13:01 func.MYD
-rw-rw----    1 mysql    mysql        1024 Jun 21 13:01 func.MYI
-rw-rw----    1 mysql    mysql        8958 Jun 21 13:01 host.frm
-rw-rw----    1 mysql    mysql           0 Jun 21 13:01 host.MYD
-rw-rw----    1 mysql    mysql        1024 Jun 21 13:01 host.MYI
-rw-rw----    1 mysql    mysql        8877 Jun 21 13:01 tables_priv.frm
-rw-rw----    1 mysql    mysql           0 Jun 21 13:01 tables_priv.MYD
-rw-rw----    1 mysql    mysql        1024 Jun 21 13:01 tables_priv.MYI
-rw-rw----    1 mysql    mysql        9148 Jun 21 13:01 user.frm
-rw-rw----    1 mysql    mysql         428 Jun 21 13:01 user.MYD
-rw-rw----    1 mysql    mysql        2048 Jun 21 13:01 user.MYI

/mnt/ext3/mysql/var/lib/mysql/test:
total 8
drwx------    2 mysql    mysql        4096 Jun 21 13:01 .
drwxr-xr-x    4 mysql    mysql        4096 Jun 21 13:01 ..

*** List MySQL Processes...
root       902   697  0 13:01 ttyp0    00:00:00 /bin/bash /usr/local/bin/setup_mysql -rdir /mnt/ext3/mysql -v
root       965     1  1 13:01 ttyp0    00:00:00 /bin/sh /usr/bin/safe_mysqld --defaults-file=/etc/my.cnf
mysql      991   965  1 13:01 ttyp0    00:00:00 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/mnt/ext3/mysql/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking

        
      

At this point a mysql database engine is up and running and ready for user database and table creation. Management of the database engine can now proceed with the phpMyAdmin web-based tool found in Chapter 2, The Web User Interface (WUI).