--- loncom/build/system_dependencies/sqltest.pl 2002/08/06 23:38:27 1.7 +++ loncom/build/system_dependencies/sqltest.pl 2002/08/07 18:43:42 1.8 @@ -2,7 +2,7 @@ # sqltest.pl - script to test MySQL database connectivity for LON-CAPA # -# $Id: sqltest.pl,v 1.7 2002/08/06 23:38:27 harris41 Exp $ +# $Id: sqltest.pl,v 1.8 2002/08/07 18:43:42 harris41 Exp $ # ### @@ -41,45 +41,49 @@ avoid indirectly testing software depend =head2 ORGANIZATION OF THIS PERL SCRIPT -The script is organized into the following sections +The script is organized into the following sections. =over 4 =item 1. -Modules used by this script, +Process version information of this file. =item 2. -Initializations. +Modules used by this script, =item 3. -Read in current configuration. +Initializations. =item 4. +Read in current configuration. + +=item 5. + Is this a library or access server? This step in the script is both a sanity check and also allows for other future LON-CAPA server types (e.g. "admin", "backup", "firewall") to not be required to have MySQL. -=item 5. +=item 6. Make sure that the database can be accessed. If not, a variety of possible problems should be tested for, and a status report should be issued to standard output. -=item 6. +=item 7. Close database connection. This part of the script is only reached if the database was successfully connected to. -=item 7. +=item 8. Subroutines. @@ -130,6 +134,12 @@ Foundation, Inc., 59 Temple Place, Suite =cut +# =================================== Process version information of this file. +my $VERSION = sprintf("%d.%02d", q$Revision: 1.8 $ =~ /(\d+)\.(\d+)/); + +print('Running sqltest.pl, version '.$VERSION.'.'."\n"); +print('(Test interoperability of the MySQL server for use by LON-CAPA.)'."\n"); + # ================================================ Modules used by this script. use strict; use DBI; # Needed to interface with the database. @@ -186,6 +196,7 @@ my $dbh; my $checkDBImodule=`perl pmvers DBI 2>/dev/null`; my $checkMYSQLmodule=`perl pmvers Mysql 2>/dev/null`; my $checkprocess=`/etc/rc.d/init.d/mysqld status`; + my $process_ecode=system('/etc/rc.d/init.d/mysqld status'); # ---------------------------------------------- Issue a status report. if (!$checkDBImodule) { @@ -239,6 +250,19 @@ shutdown the mysqld processes. END $problem_flag=1; } + if ($process_ecode) { # The exit code for mysqld status was abnormal. + print('**** ERROR **** MYSQLD IS NOT AVAILABLE'."\n"); + print(<