joomla 1.5 mariadb 10

B K*_*B K -1 joomla joomla1.5 mariadb

我有一个cpanel服务器,我试图将MySQL升级到MariaDB 10,现在一切正常,除了许多使用unicode语言的Joomla 1.5网站现在显示问号而不是每个字符:

我必须澄清一些事情:在升级之前,站点正在使用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
Run Code Online (Sandbox Code Playgroud)

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

[mysql]
default-character-set=utf8
Run Code Online (Sandbox Code Playgroud)

在joomla系统信息中,我得到:

数据库整理:N/A(mySQL <4.1.2)

没运气

B K*_*B K 7

我问joomla和mariadb论坛没有答案,所以我检查并发现了问题,我在这里发布,所以如果有人需要受益mariadb 10甚至更​​老和不支持的版本可以使用这个快速修复.

希望能帮助到你

libraries/joomla/database/database/mysql.php
Run Code Online (Sandbox Code Playgroud)

或(取决于您的设置)

libraries/joomla/database/database/mysqli.php
Run Code Online (Sandbox Code Playgroud)

评论第186行

return ($verParts[0] == 5 || ($verParts[0] == 4 && $verParts[1] == 1 && (int)$verParts[2] >= 2));
Run Code Online (Sandbox Code Playgroud)

并添加它(假设这些天你将拥有unicode支持的数据库:

return (1);
Run Code Online (Sandbox Code Playgroud)

代码如下:

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

最好