我有一个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系统信息中我得到:
数据库整理:N / A(mySQL< 4.1.2)
没有运气
答案 0 :(得分:7)
我在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));
并添加此代码(假设这些天您将拥有支持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);
}
最佳
答案 1 :(得分:0)
SHOW CREATE TABLE
可能会告诉你什么是错的。
问号来自:
SET NAMES
同意客户端的编码,但CHARACTER SET
不包含预期的字符。