В первую очередь был выполнен запрос, для приведения БД (далее в качестве имени db_name) к нужному сравнению -
ALTER DATABASE `db_name` DEFAULT COLLATE utf8_unicode_ci;
Затем были изменены действия выполняемые после подключения к БД. Для этого файл /bitrix/php_interface/after_connect.php был приведён к следующему виду -
<?
$DB->Query('SET NAMES "utf8"');
$DB->Query('SET sql_mode=""');
$DB->Query('SET character_set_results=utf8');
$DB->Query('SET collation_connection = "utf8_unicode_ci"');
?>
И после всего этого надо было изменить сравнение всех таблиц БД к utf8_unicode_ci. Можно было конечно ручками, но проще выполнить два запроса -
Первый
SELECT CONCAT('ALTER TABLE `', t.`TABLE_SCHEMA`, '`.`', t.`TABLE_NAME`, '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;') as sqlcodeКоторый в качестве ответа выдает
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = 'db_name'
ORDER BY 1
ALTER TABLE `db_name`.`b_adv_banner_2_country` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `db_name`.`b_adv_banner_2_day` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `db_name`.`b_adv_banner_2_group` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE `db_name`.`b_adv_banner_2_page` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
....
....
Выполняем получившийся запрос.
После этого провёл "Проверку БД" http://site_name/bitrix/admin/repair_db.php?lang=ru и затем "Оптимизацию БД" http://site_name/bitrix/admin/repair_db.php?optimize_tables=Y&lang=ru
Проблема была устранена
Проблема осталась(
ОтветитьУдалитьСпасибо! Помогло.
ОтветитьУдалить