Drupal的数据库连接信息通过文件settings.php中的变量$databases设置。变量$databases是一个二维的数组,第一维称为key,第二维称为target。使用这种方式可以处理多数据库和主从分离这样复杂的情况。

例如,假设有这样的配置:

$databases['default']['default'] = array(
'database' => 'drupal',
);
$databases['default']['slave1'] = array(
'database' => 'slave1',
);
$databases['default']['slave2'] = array(
'database' => 'slave2',
); $databases['erp']['default'] = array(
'database' => 'erp',
); $databases['oa']['default'] = array(
'database' => 'oa',
);

默认的key是default,默认的target是default,因此大多数情况可以这样查询:

$result = db_query('SELECT * FROM node'); // drupal数据库

如果需要在指定的target中执行查询,可以这样:

$result = db_query('SELECT * FROM node', null, array('target' => 'slave1'));
$result = db_query('SELECT * FROM node', null, array('target' => 'slave2'));

如果需要在指定的key中执行查询,可以这样:

Database::setActiveConnection('erp');
$result = db_query('SELECT * FROM erp_user');

有多个从数据库时,也可以这样配置:

$databases['default']['slave'][] = array(
'database' => 'slave1',
);
$databases['default']['slave'][] = array(
'database' => 'slave2',
);
$databases['default']['slave'][] = array(
'database' => 'slave3',
);

如果需要在slave中执行查询,就这样写:

$result = db_query('SELECT * FROM node', null, array('target' => 'slave'));

Drupal遇到这种情况,会随机地从三台从数据库中选择一台。当然,在同一个PHP会话中这个连接是固定的,不同的PHP会话有可能不同。

如何配置Drupal数据库信息?的更多相关文章

  1. 项目那几步走:先配置setting路径文件、创建数据库、执行数据库迁移命令、配置mysql数据库信息、注册app、注释中间件、pymysql替换mysqldb-配置urls路由-继续视图函数-然后HTML页面展示-HTML里面导入css文件、models配置数据库表、

    django使用mysql数据库: 首先cmd创建库 1.settings: """Django settings for day42 project. Generate ...

  2. 本地虚拟机部署线上php程序---不需要修改数据库信息

    1.特别注意:拿来线上php程序后一般是不需要修改config.php里面的数据库连接信息的,如果修改了会报错:站点已关闭.所以 2.5 步骤是需要省略的.如果拿来的是最开始的php源码,需要配置原始 ...

  3. 配置MySQL数据库

    一.配置MySQL数据库 1.解压绿色版mysql,如下图 二.安装服务 1.运行cmd(管理员版本,否则没有权限),如下图 2.运行命令mysqld –install安装服务,如下图: 如果不需要m ...

  4. 原创教程:SpagoBI4.2汉化及配置Mysql数据库教程

    SpagoBI4.2汉化及配置Mysql数据库教程 商务智能套件SpagoBI提供一个基于J2EE的框架用于管理BI对象如报表.OLAP分析.仪表盘.记分卡以及数据挖掘模型等的开源BI产品.它提供的B ...

  5. 【Spring】如何在单个Boot应用中配置多数据库?

    原创 BOOT 为什么需要多数据库? 默认情况下,Spring Boot使用的是单数据库配置(通过spring.datasource.*配置具体数据库连接信息).对于绝大多数Spring Boot应用 ...

  6. 14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB

    14.6.11 Configuring Optimizer Statistics for InnoDB 配置优化统计信息用于InnoDB 14.6.11.1 Configuring Persisten ...

  7. hibernate通过配置文件生成数据库信息

    hibernate可以通过配置文件在数据库生成相应的数据库信息.也可以把数据库的信息生成相应的代码(实体类操作类和映射文件) 下面是通过代码默认对hibernate.cfg.xml信息在数据库生成信息 ...

  8. PLSQL配置登录用户信息

    PLSQL配置登录用户信息 2012-08-30 08:47:02     我来说两句      作者:lsxy117 收藏    我要投稿 PLSQL配置登录用户信息   工作中经常使用PLSQL ...

  9. CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动

    CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理 ...

随机推荐

  1. http://blog.csdn.net/xiamizy/article/details/40781939

    http://blog.csdn.net/xiamizy/article/details/40781939

  2. CentOS7安装配置Apache HTTP Server

    RPM安装httpd 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # yum -yinstall http ...

  3. 设置 Firewalld 防火墙控制对系统的访问

    1.检查 server101 的网卡,记住第二个网卡的名称 [root@server101 ~]# nmcli device DEVICE TYPE STATE CONNECTION br0 brid ...

  4. 更改win7资源管理器启动位置

    打开资源管理器属性,在目标(T)后边加上: /e,::{20D04FE0-3AEA-1069-A2D8-08002B30309D} 俺滴笨笨原本目标(T)是: %windir%\explorer.ex ...

  5. 《Java编程那点事儿》读书笔记(一)——基本数据结构

    觉得自己记忆力很烂的样子,读书不做笔记就好像没读一样,所以决定以后读技术类的书籍,都要做好笔记. 1.IP地址和域名:如果把IP地址类比成身份证号的话,域名就是持证人的名字. 2.端口:规定一个 设备 ...

  6. 《c程序设计语言》读书笔记--统计总的字符数,打印能打印的最多字符

    #include <stdio.h> #define MAXLINE 10 int getline(char line[],int maxline); void copy(char to[ ...

  7. 总结Selenium自动化测试方法(二)测试环境搭建

    (接上期内容) 二.测试环境搭建 1.安装python 现在python3.0比python2.0多了一些改进的功能(详见http://zhidao.baidu.com/link?url=3sT1g7 ...

  8. Python Mongo操作

    # -*- coding: utf-8 -*- ''' Python Mongo操作Demo Done: ''' from pymongo import MongoClient conn = None ...

  9. leetcode:Happy Number

    要求:Write an algorithm to determine if a number is "happy". A happy number is a number defi ...

  10. computer使用快捷小技巧

    1.快速打开运行  win+R 几个运行实用命令 notepad--------打开记事本 mspaint--------画图板 calc-----------启动计算器 compmgmt.msc-- ...