'wgDBpassword',
'wgDBprefix',
'wgDBTableOptions',
- 'wgDBmysql5',
];
protected $internalDefaults = [
$this->setVar( '_MysqlCharset', reset( $charsets ) );
}
- // Do charset selector
- if ( count( $charsets ) >= 2 ) {
- // getRadioSet() builds a set of labeled radio buttons.
- // For grep: The following messages are used as the item labels:
- // config-mysql-binary, config-mysql-utf8
- $s .= $this->getRadioSet( [
- 'var' => '_MysqlCharset',
- 'label' => 'config-mysql-charset',
- 'itemLabelPrefix' => 'config-mysql-',
- 'values' => $charsets
- ] );
- $s .= $this->parent->getHelpBox( 'config-mysql-charset-help' );
- }
-
return $s;
}
/** @var Database $conn */
$conn = $status->value;
$dbName = $this->getVar( 'wgDBname' );
- if ( !$conn->selectDB( $dbName ) ) {
+ if ( !$this->databaseExists( $dbName ) ) {
$conn->query(
"CREATE DATABASE " . $conn->addIdentifierQuotes( $dbName ) . "CHARACTER SET utf8",
__METHOD__
);
- $conn->selectDB( $dbName );
}
+ $conn->selectDB( $dbName );
$this->setupSchemaVars();
return $status;
}
+ /**
+ * Try to see if a given database exists
+ * @param string $dbName Database name to check
+ * @return bool
+ */
+ private function databaseExists( $dbName ) {
+ $encDatabase = $this->db->addQuotes( $dbName );
+
+ return $this->db->query(
+ "SELECT 1 FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = $encDatabase",
+ __METHOD__
+ )->numRows() > 0;
+ }
+
/**
* @return Status
*/
}
public function getLocalSettings() {
- $dbmysql5 = wfBoolToStr( $this->getVar( 'wgDBmysql5', true ) );
$prefix = LocalSettingsGenerator::escapePhpString( $this->getVar( 'wgDBprefix' ) );
$tblOpts = LocalSettingsGenerator::escapePhpString( $this->getTableOptions() );
\$wgDBprefix = \"{$prefix}\";
# MySQL table options to use during installation or update
-\$wgDBTableOptions = \"{$tblOpts}\";
-
-# Experimental charset support for MySQL 5.0.
-\$wgDBmysql5 = {$dbmysql5};";
+\$wgDBTableOptions = \"{$tblOpts}\";";
}
}