การทำให้ Discuz! X ใช้งานร่วมกับ MariaDB
MariaDB เป็นระบบฐานข้อมูลที่แยกพัฒนาออกจาก MySQL ของ Oracle นะครับ รู้สึกว่าหลังๆจะได้รับความนิยมมากขึ้นพอสมควร อาจจะมีการเปลื่ยนแปลงครั้งใหญ่ในอนาคตก็ได้ จะลองก่อน ก็ไม่เสียหาย จริงไหมครับ?สำหรับ Discuz! X ยังไม่รองรับ MariaDB จำเป็นต้องโมไฟล์นิดหน่อยเพื่อให้ใช้งานได้ครับ ทำตามนี้เลย
ที่ไฟล์ source\class\db\db_driver_mysql.php หา
function _dbconnect($dbhost, $dbuser, $dbpw, $dbcharset, $dbname, $pconnect, $halt = true) {
if($pconnect) {
$link = @mysql_pconnect($dbhost, $dbuser, $dbpw, MYSQL_CLIENT_COMPRESS);
} else {
$link = @mysql_connect($dbhost, $dbuser, $dbpw, 1, MYSQL_CLIENT_COMPRESS);
}
if(!$link) {
$halt && $this->halt('notconnect', $this->errno());
} else {
$this->curlink = $link;
if($this->version() > '4.1') {
$dbcharset = $dbcharset ? $dbcharset : $this->config['dbcharset'];
$serverset = $dbcharset ? 'character_set_connection='.$dbcharset.', character_set_results='.$dbcharset.', character_set_client=binary' : '';
$serverset .= $this->version() > '5.0.1' ? ((empty($serverset) ? '' : ',').'sql_mode=\'\'') : '';
$serverset && mysql_query("SET $serverset", $link);
}
$dbname && @mysql_select_db($dbname, $link);
}
return $link;
}
แก้เป็น
function _dbconnect($dbhost, $dbuser, $dbpw, $dbcharset, $dbname, $pconnect, $halt = true) {
if($pconnect) {
$link = @mysql_pconnect($dbhost, $dbuser, $dbpw, MYSQL_CLIENT_COMPRESS);
} else {
$link = @mysql_connect($dbhost, $dbuser, $dbpw, 1, MYSQL_CLIENT_COMPRESS);
}
if(!$link) {
$halt && $this->halt('notconnect', $this->errno());
} else {
$this->curlink = $link;
if(version_compare($this->version(), '4.1', '>')) {
$dbcharset = $dbcharset ? $dbcharset : $this->config['dbcharset'];
$serverset = $dbcharset ? 'character_set_connection='.$dbcharset.', character_set_results='.$dbcharset.', character_set_client=binary' : '';
$serverset .= version_compare($this->version(), '5.0.1', '>') ? ((empty($serverset) ? '' : ',').'sql_mode=\'\'') : '';
$serverset && mysql_query("SET $serverset", $link);
}
$dbname && @mysql_select_db($dbname, $link);
}
return $link;
}
ต่อไปที่ source\class\db\db_driver_mysqli.php หา
function _dbconnect($dbhost, $dbuser, $dbpw, $dbcharset, $dbname, $pconnect, $halt = true) {
$link = new mysqli();
if(!$link->real_connect($dbhost, $dbuser, $dbpw, $dbname, null, null, MYSQLI_CLIENT_COMPRESS)) {
$halt && $this->halt('notconnect', $this->errno());
} else {
$this->curlink = $link;
if($this->version() > '4.1') {
$link->set_charset($dbcharset ? $dbcharset : $this->config['dbcharset']);
$serverset = $this->version() > '5.0.1' ? 'sql_mode=\'\'' : '';
$serverset && $link->query("SET $serverset");
}
}
return $link;
}
แก้เป็น
function _dbconnect($dbhost, $dbuser, $dbpw, $dbcharset, $dbname, $pconnect, $halt = true) {
$link = new mysqli();
if(!$link->real_connect($dbhost, $dbuser, $dbpw, $dbname, null, null, MYSQLI_CLIENT_COMPRESS)) {
$halt && $this->halt('notconnect', $this->errno());
} else {
$this->curlink = $link;
if(version_compare($this->version(), '4.1', '>')) {
$link->set_charset($dbcharset ? $dbcharset : $this->config['dbcharset']);
$serverset = version_compare($this->version(), '5.0.1', '>') ? 'sql_mode=\'\'' : '';
$serverset && $link->query("SET $serverset");
}
}
return $link;
}
เพียงเท่านี้ก็สามารถใช้งาน MariaDB ได้แล้วครับ ขอบคุณครับ เดียวจะไปลองดู ลองแล้วครับไม่ผ่านเช่นเดิม
http://www.mx7.com/i/dea/Tq7Iuk.PNG https://gitee.com/ComsenzDiscuz/DiscuzX/issues/IJFC7
安装disucz报错,TK求助CP主机回复 不支持MARIADB数据库
百度找到下面解决方案
求指点
查找搜function version()函数,让函数直接return '9.9.9',包含的文件有
source\class\db\db_driver_mysql.php
source\class\db\db_driver_mysqli.php
uc_client\lib\db.class.php
uc_server\lib\db.class.php
api\db\dbbak.php
上面
找到source\class\db\db_driver_mysql.php
function version() {
if(empty($this->version)) {
$this->version = mysql_get_server_info($this->curlink);
}
return $this->version;
}
怎么注释 高手指点下~
=== 刚刚找到了几个解决方法 ===
function version() {
if(empty($this->version)) {
$this->version = mysql_get_server_info($this->curlink);
}
return '9.9.9';
}
=======================
function version() {
if(empty(this−>version))$this−>version=′9.9.9′;returnthis->version;
}
=======================
function version() {
return '9.9.9';
}
/// ขอบคุณ ข้อมูล จากhost4pro
หน้า:
[1]