Discuz!X/多数据库配置与使用方法

简介:

在Discuz!x中,是可以方便的使用多数据库的,可以单独的配置不同的数据库连接。作用估计起来有以下两个好处。

  1. 如果负载足够搞,是可以把很一些表分布在多台数据库服务器中。这样来减小负载
  2. 可以方便的使用别的数据库中的数据。
  3. 还可以把帖子分表,分到不同的数据库服务器中 将帖子拆分到其他数据库

配置方法

在/config/config_global.php 文件中增加数据表和服务器之间的映射关系,还有相应数据库服务器配置。加入以下代码

Java代码   收藏代码
  1.  //2的意思是随后配置的数据库连接参数  
  2. $_config['db']['map']=array('表名'=>'2');  
  3.   
  4. //这里面2对应映射配置  
  5. $_config['db']['2']['dbhost'] = 'localhost';  
  6. $_config['db']['2']['dbuser'] = 'root';  
  7. $_config['db']['2']['dbpw'] = '';  
  8. $_config['db']['2']['dbcharset'] = 'gbk';  
  9. $_config['db']['2']['pconnect'] = '0';  
  10. $_config['db']['2']['dbname'] = '数据库名';  
  11. //这个参数其实没有用,要照我随后的修改就可以用了  
  12. $_config['db']['2']['tablepre'] = 'cdb_';  
 

使用方法

在程序中使用就很方便了。直接使用DB静态对象

Java代码   收藏代码
  1. print_r(DB::fetch_first("SELECT * FROM ".DB::table('表名')." limit 1"));   

注意事项

  1. 一定要使用DB::table方法,因为通过这个方法来转换数据库连接。
  2. 一些联表查询不能使用
  3. 外联数据库的表前缀一定得和现在的表前缀一样。如 pre_表名

一些额外的修改

如果需要使用其它数据库的非Discuz的表,可以修改 class_core 的 table_name 函数,这样就不用限制 pre_ 表前缀了。而且配置中的数据库前缀也可以用了。

Java代码   收藏代码
  1. function table_name($tablename) {  
  2.     if(!empty($this->map) && !empty($this->map[$tablename])) {  
  3.         $id = $this->map[$tablename];  
  4.         if(!$this->link[$id]) {  
  5.             $this->connect($id);  
  6.         }  
  7.         $this->curlink = $this->link[$id];  
  8.         //增加了这一句  
  9.         return $this->config[$id]['tablepre'].$tablename;  
  10.     } else {  
  11.         $this->curlink = $this->link[1];  
  12.     }  
  13.   
  14.     return $this->tablepre.$tablename;  
  15. }  
相关文章
|
3月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
365 93
|
6月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
267 1
|
3月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
428 7
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
582 5
|
9月前
|
关系型数据库 MySQL Java
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
【YashanDB知识库】原生mysql驱动配置连接崖山数据库
|
9月前
|
数据库
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
【YashanDB知识库】数据库一主一备部署及一主两备部署时,主备手动切换方法及自动切换配置
|
8月前
|
安全 Linux 网络安全
YashanDB数据库服务端SSL连接配置
YashanDB支持通过SSL连接确保数据传输安全,需在服务端生成根证书、服务器证书及DH文件,并将根证书提供给客户端以完成身份验证。服务端配置包括使用OpenSSL工具生成证书、设置SSL参数并重启数据库;客户端则需下载根证书并正确配置环境变量与`yasc_env.ini`文件。注意:启用SSL后,所有客户端必须持有根证书才能连接,且SSL与密码认证独立运行。
|
6月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
403 3
Jasypt加密数据库配置信息
|
5月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
457 0