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) 修改数据库部署非常危险,操作前请斟酌!