Select InnoDB engine automatically if available

This commit is contained in:
Kijin Sung 2016-02-07 23:13:22 +09:00
parent e59dc59664
commit 6b5e95a0c4
15 changed files with 37 additions and 74 deletions

View file

@ -51,29 +51,21 @@ class installController extends install
return $output;
}
// Check if MySQL server supports InnoDB.
if(stripos($config->db_type, 'innodb') !== false)
// Check MySQL server capabilities.
if(stripos($config->db_type, 'mysql') !== false)
{
$innodb_supported = false;
// Check if InnoDB is supported.
$show_engines = $oDB->_fetch($oDB->_query('SHOW ENGINES'));
foreach($show_engines as $engine_info)
{
if(strcasecmp($engine_info->Engine, 'InnoDB') === 0)
if ($engine_info->Engine === 'InnoDB')
{
$innodb_supported = true;
$config->db_type .= '_innodb';
break;
}
}
// If server does not support InnoDB, fall back to default storage engine (usually MyISAM).
if(!$innodb_supported)
{
$config->db_type = str_ireplace('_innodb', '', $config->db_type);
}
}
// Check if MySQL server supports utf8mb4.
if(stripos($config->db_type, 'mysql') !== false)
{
// Check if utf8mb4 is supported.
$oDB->charset = $oDB->getBestSupportedCharset();
$config->db_charset = $oDB->charset;
}

View file

@ -114,7 +114,7 @@ class installView extends install
}
*/
$defaultDatabase = 'mysqli_innodb';
$defaultDatabase = 'mysqli';
$disableList = DB::getDisableList();
if(is_array($disableList))
{
@ -122,7 +122,7 @@ class installView extends install
{
if($value->db_type == $defaultDatabase)
{
$defaultDatabase = 'mysqli';
$defaultDatabase = 'mysql';
break;
}
}

View file

@ -45,10 +45,8 @@ $lang->cmd_install_refresh_page = 'Refresh';
$lang->cmd_install_next = 'Continue installation';
$lang->cmd_ignore = 'Ignore';
$lang->cmd_recommended = 'Recommended';
$lang->db_desc['mysqli'] = 'Use MySQL as a database via the mysqli extension.<br />Use the MyISAM storage engine, which does not support transactions.';
$lang->db_desc['mysqli_innodb'] = 'Use MySQL as a database via the mysqli extension.<br />Use the InnoDB storage engine, which supports transactions and higher concurrency.';
$lang->db_desc['mysql'] = 'Use MySQL as a database via PHP\'s mysql_* functions.<br />Use the MyISAM storage engine, which does not support transactions.';
$lang->db_desc['mysql_innodb'] = 'Use MySQL as a database via PHP\'s mysql_* functions.<br />Use the InnoDB storage engine, which supports transactions and higher concurrency.';
$lang->db_desc['mysqli'] = 'Use MySQL as a database via the mysqli extension.';
$lang->db_desc['mysql'] = 'Use MySQL as a database via mysql_* functions.';
$lang->db_desc['cubrid'] = 'Use CUBRID as a database. See <a href="http://www.cubrid.org/wiki_tutorials/entry/cubrid-installation-instructions" target="_blank">Manual</a> for more info';
$lang->db_desc['mssql'] = 'Use Microsoft SQL Server as a database.';
$lang->can_use_when_installed = 'Not installed on this server';

View file

@ -24,10 +24,8 @@ $lang->install_permission_denied = 'La atribución de la ruta de instalacion no
$lang->cmd_install_refresh_page = 'Refrescar';
$lang->cmd_install_next = 'Continuar la instalación';
$lang->cmd_recommended = 'Recomendado';
$lang->db_desc['mysqli'] = 'Utilizando las funciones mysqli*() de PHP usar DB mysql.<br />La transacción es desabilitado ya que DB(Bases de Datos) está creado por myisam.';
$lang->db_desc['mysqli_innodb'] = 'Utilizando innodb usar BD mysql.<br />La transacción es hablilitado para innodb';
$lang->db_desc['mysql'] = 'Utilizando las funciones mysql_*() de PHP usar DB mysql.<br />La transacción es desabilitado ya que DB(Bases de Datos) está creado por myisam.';
$lang->db_desc['mysql_innodb'] = 'Utilizando innodb usar BD mysql.<br />La transacción es hablilitado para innodb';
$lang->db_desc['mysqli'] = 'Utilizando las funciones mysqli*() de PHP usar DB mysql.';
$lang->db_desc['mysql'] = 'Utilizando las funciones mysql_*() de PHP usar DB mysql.';
$lang->db_desc['cubrid'] = 'Usar BD CUBRID. <a href="http://www.cubrid.org/wiki_tutorials/entry/cubrid-installation-instructions" target="_blank">Manual</a>';
$lang->db_desc['mssql'] = 'Usar Microsoft SQL Server.';
$lang->form_title = 'Ingresar BD &amp; Información del Administrador;';

View file

@ -24,10 +24,8 @@ $lang->install_permission_denied = 'La permission du chemin d\'installation n\'e
$lang->cmd_install_refresh_page = 'Rafraîchir';
$lang->cmd_install_next = 'Continuer à installer';
$lang->cmd_recommended = 'Recommandé';
$lang->db_desc['mysqli'] = 'Utilisera fonction mysqli*() pour utiliser la base de données de mysql.<br />La transaction sera invalidé parce que le fichier de Base de Données est créé par myisam.';
$lang->db_desc['mysqli_innodb'] = 'Utilisera innodb pour utiliser Base de Données de mysql.<br />La transaction sera validé pour innodb';
$lang->db_desc['mysql'] = 'Utilisera fonction mysql_*() pour utiliser la base de données de mysql.<br />La transaction sera invalidé parce que le fichier de Base de Données est créé par myisam.';
$lang->db_desc['mysql_innodb'] = 'Utilisera innodb pour utiliser Base de Données de mysql.<br />La transaction sera validé pour innodb';
$lang->db_desc['mysqli'] = 'Utilisera fonction mysqli_*() pour utiliser la base de données de MySQL.';
$lang->db_desc['mysql'] = 'Utilisera fonction mysql_*() pour utiliser la base de données de MySQL';
$lang->db_desc['cubrid'] = 'Utiliser la Base de Données de CUBRID. <a href="http://www.cubrid.org/wiki_tutorials/entry/cubrid-installation-instructions" target="_blank">Manual</a>';
$lang->db_desc['mssql'] = 'Utiliser la Base de Données de Microsoft SQL Server.';
$lang->can_use_when_installed = 'Pas installé sur ce serveur';

View file

@ -45,10 +45,8 @@ $lang->cmd_install_refresh_page = 'リフレッシュ';
$lang->cmd_install_next = 'インストールを続けます。';
$lang->cmd_ignore = 'FTP設定を省略する';
$lang->cmd_recommended = '推奨';
$lang->db_desc['mysqli'] = 'mysqliモジュールを使用してMySQL DBに接続します。<br />MyISAMのエンジンを使用するので、トランザクションが行われず、データの損傷の危険があります。';
$lang->db_desc['mysqli_innodb'] = 'mysqliモジュールを使用してMySQL DBに接続します。<br />InnoDBのエンジンは、トランザクションを支援してデータの損傷の危険が低く、同時処理能力が優れています。';
$lang->db_desc['mysql'] = 'PHPのmysql_*()関数を使用してMySQL DBに接続します。<br />MyISAMのエンジンを使用するので、トランザクションが行われず、データの損傷の危険があります。';
$lang->db_desc['mysql_innodb'] = 'PHPのmysql_*()関数を使用してMySQL DBに接続します。<br />InnoDBのエンジンは、トランザクションを支援してデータの損傷の危険が低く、同時処理能力が優れています。';
$lang->db_desc['mysqli'] = 'mysqliモジュールを使用してMySQL DBに接続します。';
$lang->db_desc['mysql'] = 'mysql_*()関数を使用してMySQL DBに接続します。';
$lang->db_desc['cubrid'] = 'CUBRID DBを利用します。 <a href="http://www.cubrid.org/wiki_tutorials/entry/cubrid-installation-instructions" target="_blank">Manual</a>';
$lang->db_desc['mssql'] = 'Microsoft SQL Serverを利用します。';
$lang->can_use_when_installed = 'このサーバーにインストールされていません';

View file

@ -45,10 +45,8 @@ $lang->cmd_install_refresh_page = '새로고침';
$lang->cmd_install_next = '설치를 진행합니다.';
$lang->cmd_ignore = '무시';
$lang->cmd_recommended = '권장';
$lang->db_desc['mysqli'] = 'mysqli 모듈을 사용하여 MySQL DB에 접속합니다.<br />MyISAM 저장엔진을 사용하므로 트랜잭션이 이루어지지 않으며 데이터 손상의 위험이 있습니다.';
$lang->db_desc['mysqli_innodb'] = 'mysqli 모듈을 사용하여 MySQL DB에 접속합니다.<br />InnoDB 저장엔진은 트랜잭션을 지원하여 데이터 손상의 위험이 낮으며, 동시 처리 능력이 뛰어납니다.';
$lang->db_desc['mysql'] = 'PHP의 mysql_*() 함수를 사용하여 MySQL DB에 접속합니다.<br />MyISAM 저장엔진을 사용하므로 트랜잭션이 이루어지지 않으며 데이터 손상의 위험이 있습니다.';
$lang->db_desc['mysql_innodb'] = 'PHP의 mysql_*() 함수를 사용하여 MySQL DB에 접속합니다.<br />InnoDB 저장엔진은 트랜잭션을 지원하여 데이터 손상의 위험이 낮으며, 동시 처리 능력이 뛰어납니다.';
$lang->db_desc['mysqli'] = 'mysqli 모듈을 사용하여 MySQL DB에 접속합니다.';
$lang->db_desc['mysql'] = 'mysql_*() 함수를 사용하여 MySQL DB에 접속합니다.';
$lang->db_desc['cubrid'] = 'CUBRID DB를 이용합니다. <a href="http://www.cubrid.com/zbxe/?mid=bbs_developer_tutorial&category=47452" target="_blank">Manual</a>';
$lang->db_desc['mssql'] = 'Microsoft SQL Server를 이용합니다.';
$lang->can_use_when_installed = '설치되어 있지 않음';

View file

@ -24,10 +24,8 @@ $lang->install_permission_denied = 'Права доступа пути не ус
$lang->cmd_install_refresh_page = 'обновление';
$lang->cmd_install_next = 'Продолжить установку';
$lang->cmd_recommended = 'рекомендуемые';
$lang->db_desc['mysqli'] = 'Используем mysqli*() функцию, чтобы использовать базу данных mysql.<br />Транзакция отключена из-за того, что файл базы данных создан посредством myisam.';
$lang->db_desc['mysqli_innodb'] = 'Используем innodb чтобы использовать базу данных mysql.<br />Транзакция включена для innodb';
$lang->db_desc['mysql'] = 'Используем mysql_*() функцию, чтобы использовать базу данных mysql.<br />Транзакция отключена из-за того, что файл базы данных создан посредством myisam.';
$lang->db_desc['mysql_innodb'] = 'Используем innodb чтобы использовать базу данных mysql.<br />Транзакция включена для innodb';
$lang->db_desc['mysqli'] = 'Используем mysqli_*() функцию, чтобы использовать базу данных mysql.';
$lang->db_desc['mysql'] = 'Используем mysql_*() функцию, чтобы использовать базу данных mysql.';
$lang->db_desc['cubrid'] = 'Используем CUBRID DB. <a href="http://www.cubrid.org/wiki_tutorials/entry/cubrid-installation-instructions" target="_blank">Manual</a>';
$lang->db_desc['mssql'] = 'Используем Microsoft SQL Server DB.';
$lang->form_title = 'Пожалуйста, введите дазу данных &amp; Административная Информация';

View file

@ -25,10 +25,8 @@ $lang->cmd_install_refresh_page = 'Gerekli koşulları tamamladım.';
$lang->cmd_install_next = 'Kuruluma Devam Et';
$lang->cmd_ignore = 'Önemseme';
$lang->cmd_recommended = 'Tavsiye edilen';
$lang->db_desc['mysqli'] = 'PHP\'de mysqli*() özellikleri için MySQL\'ü veritabanı olarak kullanınız.<br />İşlemler, veritabanı dosyası myisam \'da oluşturulduğu zaman işlenmeyecektir.';
$lang->db_desc['mysqli_innodb'] = 'innodb ile MySQL\'ü veritabanı olrak kullanınız.<br />İşlemler, innodb ile işlenecektir';
$lang->db_desc['mysql'] = 'PHP\'de mysql_*() özellikleri için MySQL\'ü veritabanı olarak kullanınız.<br />İşlemler, veritabanı dosyası myisam \'da oluşturulduğu zaman işlenmeyecektir.';
$lang->db_desc['mysql_innodb'] = 'innodb ile MySQL\'ü veritabanı olrak kullanınız.<br />İşlemler, innodb ile işlenecektir';
$lang->db_desc['mysqli'] = 'PHP\'de mysqli_*() özellikleri için MySQL\'ü veritabanı olarak kullanınız.';
$lang->db_desc['mysql'] = 'PHP\'de mysql_*() özellikleri için MySQL\'ü veritabanı olarak kullanınız.';
$lang->db_desc['cubrid'] = 'CUBRID\'ü veritabanı olarak kullanın. Daha fazla bilgi için <a href="http://www.cubrid.org/wiki_tutorials/entry/cubrid-installation-instructions" target="_blank">Manuel</a>i inceleyiniz';
$lang->db_desc['mssql'] = 'Microsoft SQL Server\'ü veritabanı olarak kullanın';
$lang->form_title = 'Veritabanı &amp; Yönetici Bilgisi';

View file

@ -20,10 +20,8 @@ $lang->cmd_install_refresh_page = 'Tôi đã thay đổi để phù hợp với
$lang->cmd_install_next = 'Tiếp tục cài đặt';
$lang->cmd_ignore = 'Bỏ qua';
$lang->cmd_recommended = 'Đê';
$lang->db_desc['mysqli'] = 'Dùng chức năng <b>mysqli*()</b> để sử dụng MySql Database.<br />Giao dịch được vô hiệu hóa bởi File Database được tạo ra bởi myisam.';
$lang->db_desc['mysqli_innodb'] = 'Dùng chức năng <b>innodb</b> để sử dụng MySql Database.<br />Giao dịch được kích hoạt cho innodb';
$lang->db_desc['mysql'] = 'Dùng chức năng <b>mysql_*()</b> để sử dụng MySql Database.<br />Giao dịch được vô hiệu hóa bởi File Database được tạo ra bởi myisam.';
$lang->db_desc['mysql_innodb'] = 'Dùng chức năng <b>innodb</b> để sử dụng MySql Database.<br />Giao dịch được kích hoạt cho innodb';
$lang->db_desc['mysqli'] = 'Dùng chức năng <b>mysqli_*()</b> để sử dụng MySql Database.';
$lang->db_desc['mysql'] = 'Dùng chức năng <b>mysql_*()</b> để sử dụng MySql Database.';
$lang->db_desc['cubrid'] = 'Sử dụng <b>CUBRID</b> Database. <a href="http://www.cubrid.org/wiki_tutorials/entry/cubrid-installation-instructions" target="_blank">Hướng dẫn</a>';
$lang->form_title = 'Hãy nhập thông tin Database và thông tin Administrator';
$lang->db_title = 'Xin hãy nhập thông tin Database';

View file

@ -33,10 +33,8 @@ $lang->cmd_install_refresh_page = '刷新屏幕';
$lang->cmd_install_next = '开始安装';
$lang->cmd_ignore = '忽略';
$lang->cmd_recommended = '推荐';
$lang->db_desc['mysqli'] = '利用php的 mysqli*()函数使用mysql DB。<br />DB数据是以myisam生成因此不能实现transaction。';
$lang->db_desc['mysqli_innodb'] = '利用innodb使用mysql DB。<br />innodb可以使用transaction。';
$lang->db_desc['mysql'] = '利用php的 mysql_*()函数使用mysql DB。<br />DB数据是以myisam生成因此不能实现transaction。';
$lang->db_desc['mysql_innodb'] = '利用innodb使用mysql DB。<br />innodb可以使用transaction。';
$lang->db_desc['mysqli'] = '利用php的 mysqli*()函数使用mysql DB。';
$lang->db_desc['mysql'] = '利用php的 mysql_*()函数使用mysql DB。';
$lang->db_desc['cubrid'] = '使用CUBRID DB。 <a href="http://www.cubrid.org/wiki_tutorials/entry/cubrid-installation-instructions" target="_blank">Manual</a>';
$lang->db_desc['mssql'] = '使用 Microsoft SQL Server。';
$lang->can_use_when_installed = '不是这个服务器上安装';

View file

@ -33,10 +33,8 @@ $lang->cmd_install_refresh_page = '刷新屏幕';
$lang->cmd_install_next = '開始進行安裝';
$lang->cmd_ignore = '忽略';
$lang->cmd_recommended = '推薦';
$lang->db_desc['mysqli'] = '利用 PHP 的『mysqli*()』函數使用 MySQL 資料庫。<br />利用『myisam』建立資料庫檔案因此不能實現transaction。';
$lang->db_desc['mysqli_innodb'] = '利用『innodb』使用 Mysql 資料庫。<br />innodb可以使用 transaction。';
$lang->db_desc['mysql'] = '利用 PHP 的『mysql_*()』函數使用 MySQL 資料庫。<br />利用『myisam』建立資料庫檔案因此不能實現transaction。';
$lang->db_desc['mysql_innodb'] = '利用『innodb』使用 Mysql 資料庫。<br />innodb可以使用 transaction。';
$lang->db_desc['mysqli'] = '利用 PHP 的『mysqli*()』函數使用 MySQL 資料庫。';
$lang->db_desc['mysql'] = '利用 PHP 的『mysql_*()』函數使用 MySQL 資料庫。';
$lang->db_desc['cubrid'] = '使用 CUBRID DB。 <a href="http://www.cubrid.org/wiki_tutorials/entry/cubrid-installation-instructions" target="_blank">Manual</a>';
$lang->db_desc['mssql'] = '使用 Microsoft SQL Server。';
$lang->can_use_when_installed = '不是這個服務器上安裝';

View file

@ -16,7 +16,7 @@
<block loop="DB::getEnableList() => $key,$val">
<option value="{$val->db_type}" selected="selected"|cond="$val->db_type==$defaultDatabase" />
{$val->db_type}
<block cond="$val->db_type==$defaultDatabase && stripos($val->db_type, 'innodb') !== false">({$lang->cmd_recommended})</block>
<block cond="$val->db_type == $defaultDatabase">({$lang->cmd_recommended})</block>
</option>
</block>
<block loop="DB::getDisableList() => $key,$val">

View file

@ -2,7 +2,7 @@
<ul>
<li class="active"|cond="($act==''||$act=='dispInstallLicenseAgreement')">{$lang->install_progress_menu['license_agreement']}</li>
<li class="active"|cond="$act=='dispInstallCheckEnv'">{$lang->install_progress_menu['condition']}</li>
<li cond="ini_get('safe_mode')" class="active"|cond="$act=='dispInstallSelectDB' && $progressMenu == '3'">{$lang->install_progress_menu['ftp']}</li>
<li cond="ini_get('safe_mode')" class="active"|cond="false && $act=='dispInstallSelectDB' && $progressMenu == '3'">{$lang->install_progress_menu['ftp']}</li>
<li class="active"|cond="$act=='dispInstallDBConfig' && $progressMenu == '4'">{$lang->install_progress_menu['dbInfo']}</li>
<li class="active"|cond="$act=='dispInstallAdminConfig'">{$lang->install_progress_menu['adminInfo']}</li>
</ul>