- print "<ul><li>MySQL error " . ($err = mysql_errno() ) .
- ": " . htmlspecialchars( mysql_error() ) . "</li></ul></li>";
- $ok = false;
- switch( $err ) {
- case 1045:
- case 2000:
- if( $conf->Root ) {
- $errs["RootPW"] = "Check password";
- } else {
- print "<li>Trying regular user...\n";
- /* Try the regular user... */
- $wgDBadminuser = $wgDBuser;
- $wgDBadminpassword = $wgDBpassword;
- /* Wait one second for connection rate limiting, present on some systems */
- sleep(1);
- $wgDatabase = Database::newFromParams( $wgDBserver, $wgDBuser, $wgDBpassword, "", 1 );
- if( !$wgDatabase->isOpen() ) {
- print "<ul><li>MySQL error " . ($err = mysql_errno() ) .
- ": " . htmlspecialchars( mysql_error() ) . "</li></ul></li>";
+ # Right, work out what's up
+ $errno = mysql_errno();
+ $errtx = htmlspecialchars( mysql_error() );
+ switch( $errno ) {
+ case 2002:
+ case 2003:
+ # Connection to server failed
+ $ok = false;
+ echo( "failed with error [$errno] $errtx.</li>\n" );
+ $errs["DBserver"] = "Connection failed";
+ break;
+ case 1045:
+ case 2000:
+ # Authentication error, attempt to use root
+ sleep( 1 ); # Rate limiting
+ $wgDatabase = $dbc->newFromParams( $wgDBserver, "root", $conf->RootPW, "", 1 );
+ if( $wgDatabase->isOpen() ) {
+ # Whee, fixed
+ $conf->Root = true;
+ echo( "success. Connected as root.</li>\n" );
+ } else {
+ # That didn't work either
+ $ok = false;
+ echo( "failed due to authentication errors. Check passwords.</li>" );