分享

写回答

发帖

[教程] 一个论坛添加多个数据库 [详细教程]

GoDaddy GoDaddy 29456 人阅读 | 10 人回复

发表于 2011-6-3 16:35:24 | 显示全部楼层 |阅读模式

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页面,然后登陆管理!


      
01.jpg


      点击右侧你自己的论坛数据表!
      information_schema 不要去动它!

      
02.jpg



      全选数据库表,然后选删除!

      
03.jpg

      点最右下角的"是",完成删除! 图片上的"是"被本站的LOGO挡住了!
      
04.jpg

     做完这一步以后,你的第一个数据库已经备份好了,并且清空了!
     第二个数据库也是空的!

二, 配置 config_global.php 文件
    (1) 打开FTP,找到论坛根目录中的config_global.php文件!  例: .../bbs/config/config_global.php
    (2) 下载并备份config_global.php,以防修改错误!
    (3) 编辑config_global.php 方法如下:

    找到如下代码
  1. // ----------------------------  CONFIG DB  ----------------------------- //
  2. $_config['db']['1']['dbhost'] = '数据库地址';
  3. $_config['db']['1']['dbuser'] = '数据库用户名';
  4. $_config['db']['1']['dbpw'] = '数据库密码';
  5. $_config['db']['1']['dbcharset'] = 'gbk';
  6. $_config['db']['1']['pconnect'] = '0';
  7. $_config['db']['1']['dbname'] = '数据库名';
  8. $_config['db']['1']['tablepre'] = 'pre_';
  9. $_config['db']['common']['slave_except_table'] = '';
  10. // --------------------------  CONFIG MEMORY  --------------------------- //
复制代码

    添加第二个数据库资料! 注意数据库编号
  1. $_config['db']['2']['dbhost'] = '第二数据库地址';
  2. $_config['db']['2']['dbuser'] = '第二数据库用户名';
  3. $_config['db']['2']['dbpw'] = '第二数据库密码';
  4. $_config['db']['2']['dbcharset'] = 'gbk';
  5. $_config['db']['2']['pconnect'] = '0';
  6. $_config['db']['2']['dbname'] = '第二数据库名';
  7. $_config['db']['2']['tablepre'] = 'pre_';
复制代码

    添加数据表部署! 我自己是把三个表转移到第二数据库,分别是session数据表,帖子标题表,帖子内容表!
    你也可以自行添加其它数据表! 转到那个数据库,最后的数字就填几!
  1. $_config['db']['map']['common_session'] = 2;
  2. $_config['db']['map']['forum_thread'] = 2;
  3. $_config['db']['map']['forum_post'] = 2;
复制代码

    最后修改后的代码如下,
  1. // ----------------------------  CONFIG DB  ----------------------------- //
  2. $_config['db']['1']['dbhost'] = '数据库地址';
  3. $_config['db']['1']['dbuser'] = '数据库用户名';
  4. $_config['db']['1']['dbpw'] = '数据库密码';
  5. $_config['db']['1']['dbcharset'] = 'gbk';
  6. $_config['db']['1']['pconnect'] = '0';
  7. $_config['db']['1']['dbname'] = '数据库名';
  8. $_config['db']['1']['tablepre'] = 'pre_';

  9. $_config['db']['2']['dbhost'] = '第二数据库地址';
  10. $_config['db']['2']['dbuser'] = '第二数据库用户名';
  11. $_config['db']['2']['dbpw'] = '第二数据库密码';
  12. $_config['db']['2']['dbcharset'] = 'gbk';
  13. $_config['db']['2']['pconnect'] = '0';
  14. $_config['db']['2']['dbname'] = '第二数据库名';
  15. $_config['db']['2']['tablepre'] = 'pre_';

  16. $_config['db']['map']['common_session'] = 2;
  17. $_config['db']['map']['forum_thread'] = 2;
  18. $_config['db']['map']['forum_post'] = 2;

  19. $_config['db']['common']['slave_except_table'] = '';
  20. // --------------------------  CONFIG MEMORY  --------------------------- //
复制代码

    (4) 把修改好的config_global.php上传至FTP,替换原来的!


三, 恢复数据

    (1) 把第一数据库备份出来的资料恢复到第一和第二数据库,让两个数据库的数据表保持相同!
         注意的是一定要两个数据库都是空的前提下恢复!

    (2) 复制好数据库之后打开论坛,此时一定会提示出错! 如下图:
          Error messages中,你部署了几个表,它就会提示几个表!


      
05.jpg

    (3) 删除第二数据库中的其它文件,只保留做过部署的那三个文件!
    (4) 之后再刷新就可以进论坛了,但是论坛CSS会出错,需要去后台更新模板缓存,然后把全站的缓存都更新一下!
    (5) 设置论坛开放,大功告成~~~~~当当当当!!!!

四, 总结

     (1) 以上方法是用户已经安装的论坛!
          如果是要准备全新安装论坛的话请先修改本地config文件夹中的 config_global_default 文件!
     (2) 如果数据库多次出现错误,以及全新安装部署说明的请参考: http://www.discuz.net/thread-2065103-1-1.html
     (3) 修改数据库部署非常危险,操作前请斟酌!






  `


[ 本帖最后由 lapensmallnew 于 2011-6-3 04:59 PM 编辑 ]

评分

参与人数 1威望 +3 金币 +5 银币 +10 收起 理由
lwbo1987 + 3 + 5 + 10 精品文章

查看全部评分

回答|共 10 个

lwbo1987

发表于 2011-6-3 16:41:40 | 显示全部楼层

回复 1# 的帖子

感谢分享,可是前面的图呢?
回复 支持 反对

使用道具 举报

lapensmallnew

发表于 2011-6-3 16:43:33 | 显示全部楼层

我还在编辑中~~~~~~ 有点乱了! -_-!
RAKSmart
回复 支持 反对

使用道具 举报

lwbo1987

发表于 2011-6-3 16:44:14 | 显示全部楼层

回复 支持 反对

使用道具 举报

lwbo1987

发表于 2011-6-3 16:51:30 | 显示全部楼层

这个只有discuz x2才支持吧
回复 支持 反对

使用道具 举报

lapensmallnew

发表于 2011-6-3 16:57:44 | 显示全部楼层

回复 6# 的帖子

对滴~~~~连X1.5也不行!
回复 支持 反对

使用道具 举报

lwbo1987

发表于 2011-6-3 17:07:41 | 显示全部楼层

回复 7# 的帖子

好的,感谢分享
回复 支持 反对

使用道具 举报

cjjchocolate

发表于 2011-6-3 17:19:45 | 显示全部楼层

学习了下  不过对我好像没有什么用  
回复 支持 反对

使用道具 举报

hkemax

发表于 2011-6-3 22:53:22 | 显示全部楼层

楼主的步骤是正确的.!

但某些地方是可以精简的....

谢谢无私的分享精神...
回复 支持 反对

使用道具 举报

mmsxp

发表于 2011-6-4 08:28:20 | 显示全部楼层

非常好、DZ2的这个意义不在于突破GD的1G限制,更在于提高论坛数据效率
不用再被超大数据库烦恼了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则