joomla 1.5 mariadb 10
joomla 1.5 mariadb 10
我有一个 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
和/etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8
在joomla系统信息中我得到:
Database Collation: N/A (mySQL < 4.1.2)
运气不好
SHOW CREATE TABLE
可能会告诉你哪里出了问题。
问号由此而来:
- 客户端有一个有效的字符,并且
SET NAMES
同意客户端的编码,但是
- 目标列的
CHARACTER SET
不包含预期的字符。
我在 joomla 和 mariadb 论坛上问过,但没有答案,所以我检查并发现了问题,我 post 在这里,所以如果任何人需要受益于 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));
并改为添加它(假设现在您将拥有支持 unicode 的数据库:
return (1);
代码如下:
function hasUTF()
{
$verParts = explode( '.', $this->getVersion() );
// return ($verParts[0] == 5 || ($verParts[0] == 4 && $verParts[1] == 1 && (int)$verParts[2] >= 2));
return (1);
}
最佳
我有一个 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
和/etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8
在joomla系统信息中我得到:
Database Collation: N/A (mySQL < 4.1.2)
运气不好
SHOW CREATE TABLE
可能会告诉你哪里出了问题。
问号由此而来:
- 客户端有一个有效的字符,并且
SET NAMES
同意客户端的编码,但是- 目标列的
CHARACTER SET
不包含预期的字符。
我在 joomla 和 mariadb 论坛上问过,但没有答案,所以我检查并发现了问题,我 post 在这里,所以如果任何人需要受益于 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));
并改为添加它(假设现在您将拥有支持 unicode 的数据库:
return (1);
代码如下:
function hasUTF()
{
$verParts = explode( '.', $this->getVersion() );
// return ($verParts[0] == 5 || ($verParts[0] == 4 && $verParts[1] == 1 && (int)$verParts[2] >= 2));
return (1);
}
最佳