Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Kauman

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

Recommended Posts

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

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

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

 

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

Share this post


Link to post

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

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

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

Share this post


Link to post

 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              |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

 

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

Share this post


Link to post

 

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

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

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

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

Share this post


Link to post

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

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

Share this post


Link to post

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

Если прочитать вышеуказанные темы можно найти и 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              |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

Share this post


Link to post

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

При 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 Спасибо данному форуму за помощь, а особенно администрации, которая уже сотню раз проходила этот вопрос, но не устает помогать новичкам, люблю Вас .

Share this post


Link to post

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

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...