Перейти к содержимому
Русский язык для Invision Community 5

Ошибка бд: Illegal mix of collations

Здравствуйте, прошлую проблему с базой пофиксил, появилась новая.

Форум функционирует, но когда перехожу в какую-нибудь тему выдает ошибку

If you are seeing this page, it means there was a problem communicating with our database. Sometimes this error is temporary and will go away when you refresh the page. Sometimes the error will need to be fixed by an administrator before the site will become accessible again. 

You can try to refresh the page by clicking here

 

Помогите пожалуйста, люблю Вас.

Рекомендованные сообщения

1. В логах /cache/sql_error_*.cgi нужно смотреть код и сообщения ошибки.

2. Для "There appears to be an error with the database" есть общая тема. Либо озаглавить тему таким образом, что-бы она отражала суть проблемы связанной базой данных.

3. В профиле нужно указать реальный адрес форума.

  • Автор

 Date: Sun, 19 Apr 2015 19:20:08 +0000
Error: 1267 - Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
IP Address: 175.46.78.44 - /index.php/topic/32-howtobesexy 
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: SELECT t.*,xxx.* FROM topics t  LEFT JOIN core_tags_cache xxx ON ( xxx.tag_cache_key=MD5(CONCAT('forums',';','topics',';',t.tid)) )   WHERE t.tid=32
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File                                                                       | Function                                                                      | Line No.          |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| admin/sources/base/ipsRegistry.php                                         | [app_class_forums].__construct                                                | 1389              |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

 

Вот код ошибки

  • Автор

 

Вообщем сами столбцы были в cp1251 перекодировал их в utf8 ( ничего не изменилось )

При входе в некоторые из них в Сравнение:стоит cp1251_general_ci

Хотя сама таблица в utf8_general_ci, строчки в ней в cp1251_general_ci

Как их быстро пофиксить и нужно ли это ? Как я понял и таблица и столбцы в ней должны быть одинаковой кодировки, что бы данной ошибки не было, вручную очень трудно, есть sql запрос что бы он сам все изменил ?

Кодировку нужно менять на уровне таблицы, а не для каждого столбца отдельно.

Если прочитать вышеуказанные темы можно найти и sql запрос для конвертирования данных и смены кодировке.

  • Автор

Кодировку нужно менять на уровне таблицы, а не для каждого столбца отдельно.

Если прочитать вышеуказанные темы можно найти и sql запрос для конвертирования данных и смены кодировке.

 

6Ri3L18.png

gwdvNXU.png

 

Я переставил все в utf8, но не работает всё равно.

Админка работает, Главная форума тоже, в профиль пользователя могу войти, а вот именно в топик - нет, вот код, могу заплатить за решение проблемы только озвучьте цену.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Date: Sun, 19 Apr 2015 21:27:37 +0000
Error: 1267 - Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
IP Address: 37.140.141.38 - /index.php/topic/1541-nedorogie-oteli-po-gollandski/?view=getlastpost
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: SELECT t.*,xxx.* FROM topics t  LEFT JOIN core_tags_cache xxx ON ( xxx.tag_cache_key=MD5(CONCAT('forums',';','topics',';',t.tid)) )   WHERE t.tid=1541
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File                                                                       | Function                                                                      | Line No.          |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| admin/sources/base/ipsRegistry.php                                         | [app_class_forums].__construct                                                | 1389              |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

  • Автор

Проблему решил самостоятельно. Возможно кому-нибудь будет полезно.

При SQL запросе ALTER TABLE `имя` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci - Изменилось, но только визуально

При SQL запросе ALTER TABLE имя CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; - Изменилось и форум заработал

Не путайте, подчеркнул.

 

P.S Спасибо данному форуму за помощь, а особенно администрации, которая уже сотню раз проходила этот вопрос, но не устает помогать новичкам, люблю Вас .

DEFAULT CHARACTER SET - кодировка по умолчанию; то значение, которое показывается в show create table в default. Все новые текстовые столбцы в этой таблице по умолчанию будут иметь эту кодировку.

 

CONVERT TO CHARACTER SET - изменит кодировку всех столбцов а также перекодирует данные в них.

 

To change the table default character set and all character columns (CHAR, VARCHAR, TEXT) to a new character set, use a statement like this:

 

ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name [COLLATE collation_name];

To change only the default character set for a table, use this statement:

 

ALTER TABLE tbl_name DEFAULT CHARACTER SET charset_name;

 

The word DEFAULT is optional. The default character set is the character set that is used if you do not specify the character set for columns that you add to a table later

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.