2015-07-12 5 views
-1

У меня есть сервер Cpanel, который я пытался обновить MySQL до MariaDB 10, теперь все работает, кроме многих Joomla 1.5 сайтов, которые с помощью Юникода языки теперь отображая знак вопроса вместо каждого символа:Joomla 1,5 MariaDB 10

Я должен прояснить ситуацию: сайты правильно отображались с MySQL 5.5 перед обновлением, а данные не повреждены в базе данных, поэтому, когда я копирую сайт на другой сервер MariaDB 5.6, он отображается правильно.

Я пробовал: /etc/my.cnf.d/server.cnf

[mysqld] 
collation-server=utf8_unicode_ci 
init-connect='SET NAMES utf8' 
character-set-server=utf8 

и /etc/my.cnf.d/mysql-clients.cnf

[mysql] 
default-character-set=utf8 

В система информации Joomla я получаю:

для баз данных: N/A (MySql < 4.1.2)

Не повезло

+0

Это кажется вопрос более подходит для суперпользователя или ServerFault. Однако, я думаю, у вас есть проблема с наборами символов. Вы можете связаться с людьми-мариадбами, они готовы оказать хорошую поддержку. Если вы получите решение, отправьте его здесь!:) – jotadepicas

+1

Я не согласен с вопросом на каждом форуме, потому что это срочно. Я думаю, вы должны были спросить здесь, прежде чем делать обновление. Нет, к сожалению, у меня нет никакого решения. –

+0

Искать в этом форуме для 'utf8 вопросительных знаков пользователя: 1766831' –

ответ

6

Я спросил в Joomla и MariaDB форум и нет ответов, поэтому я осмотрел и нашел этот вопрос, я выкладываю здесь, так что если кому-то нужно, чтобы принести пользу MariaDB 10 для еще старше и не поддерживаемых версий могут использовать эту быстро исправить.

надеюсь, что это помогает

в

libraries/joomla/database/database/mysql.php 

или (в зависимости от настроек)

libraries/joomla/database/database/mysqli.php 

строка комментария 186

return ($verParts[0] == 5 || ($verParts[0] == 4 && $verParts[1] == 1 && (int)$verParts[2] >= 2)); 

и добавить вместо того, чтобы (при условии, этот день S вы будете иметь Юникода поддерживаемую базу данных:

return (1); 

код выглядит как:

function hasUTF() 
{ 
    $verParts = explode('.', $this->getVersion()); 
// return ($verParts[0] == 5 || ($verParts[0] == 4 && $verParts[1] == 1 && (int)$verParts[2] >= 2)); 
return (1); 
} 

Лучшие

+0

При возврате значений вам не нужно заверните их в круглые скобки. Строка 'return 1;' или 'return true;' также прекрасна. – halfer

+0

Tnx man! Моя проблема. – Lufa

0
SHOW CREATE TABLE 

, вероятно, покажут вам, что это не так.

вопросительные знаки приходят от этого:

  • Клиент имеет действительный характер, и
  • SET NAMES соглашается с кодировкой, что клиент имеет, но
  • Цель столбца CHARACTER SET не включает предназначенный характер.
+0

Спасибо за ваш комментарий –

Смежные вопросы