GD的用戶現在不用擔心數據庫1G的限制了!
DZ從X2版本開始已經支持數據庫分布式部署啦....
也就是說,我們的數據庫可以無限大了....
經過昨天的N次測試,備份和恢復了無數次數據庫之后,證明了這個功能是可行,并且有效的!
教程如下:
注意: 本教程只適用于Discuz X2 或者之后新出的版本!
一, 準備工作
(1) 設置論壇為關閉!
(2) 進入論壇后臺進行全站備份! 如果你很懶,也可以省略這步,但失誤風險會提高!
(3) 登陸GD,創建第二個數據庫!
(4) 進入第一個數據庫(也就是你原先在使用的那個),然后進行備份!
創建或備份數據庫方法請參考:http://bbs.idcspy.com/thread-44137-1-1.html
(5) 備份完之后刪除第一數據庫的數據表! 操作如下:
點擊第一個"Manage via phpMyAdmin"進入phpMyAdmin頁面,然后登陸管理!
點擊右側你自己的論壇數據表!
information_schema 不要去動它!
全選數據庫表,然后選刪除!
點最右下角的"是",完成刪除! 圖片上的"是"被本站的LOGO擋住了!
做完這一步以后,你的第一個數據庫已經備份好了,并且清空了!
第二個數據庫也是空的!
二, 配置 config_global.php 文件
(1) 打開FTP,找到論壇根目錄中的config_global.php文件! 例: .../bbs/config/config_global.php
(2) 下載并備份config_global.php,以防修改錯誤!
(3) 編輯config_global.php 方法如下:
找到如下代碼
復制內容到剪貼板
代碼:
// ---------------------------- CONFIG DB ----------------------------- //
$_config['db']['1']['dbhost'] = '數據庫地址';
$_config['db']['1']['dbuser'] = '數據庫用戶名';
$_config['db']['1']['dbpw'] = '數據庫密碼';
$_config['db']['1']['dbcharset'] = 'gbk';
$_config['db']['1']['pconnect'] = '0';
$_config['db']['1']['dbname'] = '數據庫名';
$_config['db']['1']['tablepre'] = 'pre_';
$_config['db']['common']['slave_except_table'] = '';
// -------------------------- CONFIG MEMORY --------------------------- //
添加第二個數據庫資料! 注意數據庫編號
復制內容到剪貼板
代碼:
$_config['db']['2']['dbhost'] = '第二數據庫地址';
$_config['db']['2']['dbuser'] = '第二數據庫用戶名';
$_config['db']['2']['dbpw'] = '第二數據庫密碼';
$_config['db']['2']['dbcharset'] = 'gbk';
$_config['db']['2']['pconnect'] = '0';
$_config['db']['2']['dbname'] = '第二數據庫名';
$_config['db']['2']['tablepre'] = 'pre_';
添加數據表部署! 我自己是把三個表轉移到第二數據庫,分別是session數據表,帖子標題表,帖子內容表!
你也可以自行添加其它數據表! 轉到那個數據庫,最后的數字就填幾!
復制內容到剪貼板
代碼:
$_config['db']['map']['common_session'] = 2;
$_config['db']['map']['forum_thread'] = 2;
$_config['db']['map']['forum_post'] = 2;
最后修改后的代碼如下,
復制內容到剪貼板
代碼:
// ---------------------------- CONFIG DB ----------------------------- //
$_config['db']['1']['dbhost'] = '數據庫地址';
$_config['db']['1']['dbuser'] = '數據庫用戶名';
$_config['db']['1']['dbpw'] = '數據庫密碼';
$_config['db']['1']['dbcharset'] = 'gbk';
$_config['db']['1']['pconnect'] = '0';
$_config['db']['1']['dbname'] = '數據庫名';
$_config['db']['1']['tablepre'] = 'pre_';
$_config['db']['2']['dbhost'] = '第二數據庫地址';
$_config['db']['2']['dbuser'] = '第二數據庫用戶名';
$_config['db']['2']['dbpw'] = '第二數據庫密碼';
$_config['db']['2']['dbcharset'] = 'gbk';
$_config['db']['2']['pconnect'] = '0';
$_config['db']['2']['dbname'] = '第二數據庫名';
$_config['db']['2']['tablepre'] = 'pre_';
$_config['db']['map']['common_session'] = 2;
$_config['db']['map']['forum_thread'] = 2;
$_config['db']['map']['forum_post'] = 2;
$_config['db']['common']['slave_except_table'] = '';
// -------------------------- CONFIG MEMORY --------------------------- //
(4) 把修改好的config_global.php上傳至FTP,替換原來的!
三, 恢復數據
(1) 把第一數據庫備份出來的資料恢復到第一和第二數據庫,讓兩個數據庫的數據表保持相同!
注意的是一定要兩個數據庫都是空的前提下恢復!
(2) 復制好數據庫之后打開論壇,此時一定會提示出錯! 如下圖:
Error messages中,你部署了幾個表,它就會提示幾個表!
(3) 刪除第二數據庫中的其它文件,只保留做過部署的那三個文件!
(4) 之后再刷新就可以進論壇了,但是論壇CSS會出錯,需要去后臺更新模板緩存,然后把全站的緩存都更新一下!
(5) 設置論壇開放,大功告成~~~~~當當當當!!!!
四, 總結
(1) 以上方法是用戶已經安裝的論壇!
如果是要準備全新安裝論壇的話請先修改本地config文件夾中的 config_global_default 文件!
(2) 如果數據庫多次出現錯誤,以及全新安裝部署說明的請參考: http://www.discuz.net/thread-2065103-1-1.html
(3) 修改數據庫部署非常危險,操作前請斟酌!