Discuz Thai

 ลืมรหัสผ่าน
 สมัครสมาชิก

Sign in with facebook

Connect with friends.

ข้อตกลงการใช้งานกระดานข่าวดิสคัสไทย DiscuzThai Agreement (English Version) ประกาศดิสคัสไทย - ทำเนียบดิสคัสภาษาไทย

Discuz! X3.4 ภาษาไทย (อย่างเป็นทางการ) พร้อมแล้ว Discuz! X3.4 ภาษาไทย ดาวน์โหลด Discuz! X3.4 ภาษาไทย

บัญชีถูกแช่แข็ง (Freeze) แจ้งความประสงค์ได้ที่นี่ เปิดระบบ Verified Account - ระบบยืนยันตัวตน ถามอย่างไรจึงจะได้คำตอบ - ตั้งกระทู้เนื้อหาครอบคลุม

ดู: 1423|ตอบกลับ: 3

การทำให้ Discuz! X ใช้งานร่วมกับ MariaDB

  [คัดลอกลิงก์]
MariaDB เป็นระบบฐานข้อมูลที่แยกพัฒนาออกจาก MySQL ของ Oracle นะครับ รู้สึกว่าหลังๆจะได้รับความนิยมมากขึ้นพอสมควร อาจจะมีการเปลื่ยนแปลงครั้งใหญ่ในอนาคตก็ได้ จะลองก่อน ก็ไม่เสียหาย จริงไหมครับ?

สำหรับ Discuz! X ยังไม่รองรับ MariaDB จำเป็นต้องโมไฟล์นิดหน่อยเพื่อให้ใช้งานได้ครับ ทำตามนี้เลย

ที่ไฟล์ source\class\db\db_driver_mysql.php หา

  1. function _dbconnect($dbhost, $dbuser, $dbpw, $dbcharset, $dbname, $pconnect, $halt = true) {

  2.                 if($pconnect) {
  3.                         $link = @mysql_pconnect($dbhost, $dbuser, $dbpw, MYSQL_CLIENT_COMPRESS);
  4.                 } else {
  5.                         $link = @mysql_connect($dbhost, $dbuser, $dbpw, 1, MYSQL_CLIENT_COMPRESS);
  6.                 }
  7.                 if(!$link) {
  8.                         $halt && $this->halt('notconnect', $this->errno());
  9.                 } else {
  10.                         $this->curlink = $link;
  11.                         if($this->version() > '4.1') {
  12.                                 $dbcharset = $dbcharset ? $dbcharset : $this->config[1]['dbcharset'];
  13.                                 $serverset = $dbcharset ? 'character_set_connection='.$dbcharset.', character_set_results='.$dbcharset.', character_set_client=binary' : '';
  14.                                 $serverset .= $this->version() > '5.0.1' ? ((empty($serverset) ? '' : ',').'sql_mode=\'\'') : '';
  15.                                 $serverset && mysql_query("SET $serverset", $link);
  16.                         }
  17.                         $dbname && @mysql_select_db($dbname, $link);
  18.                 }
  19.                 return $link;
  20.         }
คัดลอกไปที่คลิปบอร์ด


แก้เป็น

  1. function _dbconnect($dbhost, $dbuser, $dbpw, $dbcharset, $dbname, $pconnect, $halt = true) {

  2.   if($pconnect) {
  3.     $link = @mysql_pconnect($dbhost, $dbuser, $dbpw, MYSQL_CLIENT_COMPRESS);
  4.   } else {
  5.     $link = @mysql_connect($dbhost, $dbuser, $dbpw, 1, MYSQL_CLIENT_COMPRESS);
  6.   }
  7.   if(!$link) {
  8.     $halt && $this->halt('notconnect', $this->errno());
  9.   } else {
  10.     $this->curlink = $link;
  11.     if(version_compare($this->version(), '4.1', '>')) {
  12.       $dbcharset = $dbcharset ? $dbcharset : $this->config[1]['dbcharset'];
  13.       $serverset = $dbcharset ? 'character_set_connection='.$dbcharset.', character_set_results='.$dbcharset.', character_set_client=binary' : '';
  14.       $serverset .= version_compare($this->version(), '5.0.1', '>') ? ((empty($serverset) ? '' : ',').'sql_mode=\'\'') : '';
  15.       $serverset && mysql_query("SET $serverset", $link);
  16.     }
  17.     $dbname && @mysql_select_db($dbname, $link);
  18.   }
  19.   return $link;
  20. }
คัดลอกไปที่คลิปบอร์ด


ต่อไปที่ source\class\db\db_driver_mysqli.php หา

  1. function _dbconnect($dbhost, $dbuser, $dbpw, $dbcharset, $dbname, $pconnect, $halt = true) {

  2.                 $link = new mysqli();
  3.                 if(!$link->real_connect($dbhost, $dbuser, $dbpw, $dbname, null, null, MYSQLI_CLIENT_COMPRESS)) {
  4.                         $halt && $this->halt('notconnect', $this->errno());
  5.                 } else {
  6.                         $this->curlink = $link;
  7.                         if($this->version() > '4.1') {
  8.                                 $link->set_charset($dbcharset ? $dbcharset : $this->config[1]['dbcharset']);
  9.                                 $serverset = $this->version() > '5.0.1' ? 'sql_mode=\'\'' : '';
  10.                                 $serverset && $link->query("SET $serverset");
  11.                         }
  12.                 }
  13.                 return $link;
  14.         }
คัดลอกไปที่คลิปบอร์ด


แก้เป็น

  1. function _dbconnect($dbhost, $dbuser, $dbpw, $dbcharset, $dbname, $pconnect, $halt = true) {

  2.   $link = new mysqli();
  3.   if(!$link->real_connect($dbhost, $dbuser, $dbpw, $dbname, null, null, MYSQLI_CLIENT_COMPRESS)) {
  4.     $halt && $this->halt('notconnect', $this->errno());
  5.   } else {
  6.     $this->curlink = $link;
  7.     if(version_compare($this->version(), '4.1', '>')) {
  8.       $link->set_charset($dbcharset ? $dbcharset : $this->config[1]['dbcharset']);
  9.       $serverset = version_compare($this->version(), '5.0.1', '>') ? 'sql_mode=\'\'' : '';
  10.       $serverset && $link->query("SET $serverset");
  11.     }
  12.   }
  13.   return $link;
  14. }
คัดลอกไปที่คลิปบอร์ด


เพียงเท่านี้ก็สามารถใช้งาน MariaDB ได้แล้วครับ

คะแนน

1

ดูบันทึกคะแนน

โพสต์ 2016-6-26 14:35:25 | ดูโพสต์ทั้งหมด
ขอบคุณครับ เดียวจะไปลองดู
โพสต์ 2016-6-27 09:30:23 | ดูโพสต์ทั้งหมด
ลองแล้วครับไม่ผ่านเช่นเดิม
โพสต์ 2019-2-4 18:02:47 | ดูโพสต์ทั้งหมด
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
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | สมัครสมาชิก Sign in with facebook

รายละเอียดเครดิต

รายชื่อผู้กระทำผิด|อุปกรณ์พกพา|Archiver|ดิสคัส ไทย Follow us: Become a fan on facebook. Follow us on Twitter.

GMT+7, 2019-2-19 08:44

Powered by Discuz! X3.3 R20170301, Rev.53

© 2001-2017 Comsenz Inc.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้