Discuz X論壇配置使用多個資料庫

2022-04-06 21:02:44 字數 1298 閱讀 7903

在discuz!x中,是可以方便的使用多資料庫的,可以單獨的配置不同的資料庫連線。作用估計起來有以下兩個好處。

1.如果負載足夠搞,是可以把很一些表分布在多台資料庫伺服器中。這樣來減小負載

2.可以方便的使用別的資料庫中的資料。

3.還可以把帖子分表,分到不同的資料庫伺服器中 將帖子拆分到其他資料庫

在/config/config_global.php

檔案中增加資料表和伺服器之間的對映關係,還有相應資料庫伺服器配置。加入以下**

//2的意思是隨後配置的資料庫連線引數

$_config['db']['map']=array('表名'=>'2');

//這裡面2對應對映配置

$_config['db']['2']['dbhost']='localhost';

$_config['db']['2']['dbuser']='root';

$_config['db']['2']['dbpw']='';

$_config['db']['2']['dbcharset']='gbk';

$_config['db']['2']['pconnect']='0';

$_config['db']['2']['dbname']='資料庫名';

//這個引數其實沒有用,要照我隨後的修改就可以用了

$_config['db']['2']['tablepre']='cdb_';

在程式中使用就很方便了。直接使用db靜態物件

print_r(db::fetch_first("select*from".db::table('表名')."limit1"));

一定要使用db::table方法,因為通過這個方法來轉換資料庫連線。

一些聯表查詢不能使用

外聯資料庫的表字首一定得和現在的表字首一樣。如 pre_表名

當開啟 debug 引數時,會提示表不存在,所以此時應關閉debug

一些額外的修改

如果需要使用其它資料庫的非discuz的表,可以修改 class_core 的 table_name 函式,這樣就不用限制

pre_ 表字首了。而且配置中的資料庫字首也可以用了。

functiontable_name($tablename)

$this->curlink=$this->link[$id];

//增加了這一句

return$this->config[$id]['tablepre'].$tablename;

}else

return$this->tablepre.$tablename;

}

DiscuzX 論壇安裝公升級

discuzx 安裝 系統環境 linux 系統架構 最前端兩台nginx 使用keepalived 來實現 高可用和負載均衡 然後使用這兩台nginx 來發布後端的多個應用,後端包括 tomcat 和 php 環境 軟體環境 nginx nginx php mysql 第乙個nginx 作為前端,...

構建Discuz X論壇系統

本案例要求基於現有的lamp平台構建一套論壇系統,選擇的論壇程式為著名的discuz 管理員需要完成的相關操作如下 1 將discuz 論壇系統的程式 部署到 目錄 2 通過瀏覽器來安裝discuz 論壇系統 3 了解discuz 論壇系統的基本使用及管理 discuz 的 檔案是以php語言編寫的...

構建Discuz X論壇系統

步驟一 部署discuz 論壇系統以資料庫管理員root連線到本機的mysql服務,新建乙個名為bbsdb的庫,然後授權使用者runbbs允許其從本機 localhost 訪問,且必須先驗證密碼taren1。root svr5 mysql u root p enter password 驗證管理密碼...