Apache模块 mod_dbd

管理SQL数据库连接,为需要数据库功能的模块提供支持

扩展(E)

dbd_module

mod_dbd.c

Version 2.1 及以后的版本中可用

概述

apr_dbd管理管理SQL数据库连接。它为需要数据库功能的模块提供了数据库连接支持,并且负责管理数据库,从而为线程和非线程型的MPM提供了最佳的性能和可伸缩性。

这个模块根据不同的平台以优化的方式管理数据库连接。在非线程平台上,它使用经典的LAMP(Linux, Apache, Mysql, Perl/PHP/Python)方式提供持久连接。在线程化的平台上,它提供了更具伸缩性和更加有效的连接池,在一篇ApacheTutor文章中有相关描述。

typedef struct {

apr_dbd_t *handle;

apr_dbd_driver_t *driver;

apr_hash_t *prepared;

} ap_dbd_t;

/* Export functions to access the database */

/* acquire a connection that MUST be explicitly closed.

* Returns NULL on error

*/

AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*);

/* release a connection acquired with ap_dbd_open */

AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*);

/* acquire a connection that will have the lifetime of a request

* and MUST NOT be explicitly closed. Return NULL on error.

* This is the preferred function for most applications.

*/

AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*);

/* acquire a connection that will have the lifetime of a connection

* and MUST NOT be explicitly closed. Return NULL on error.

*/

AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(request_rec*);

/* Prepare a statement for use by a client module */

AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*);

/* Also export them as optional functions for modules that prefer it */

APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*));

APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*));

APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));

APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*));

APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));

ap_dbd_t的prepared字段。Hash项为apr_dbd_prepared_t类型,并可以被用于任何apr_dbd预处理语句(SQL查询或select命令)。

dbd的用户模块可以决定是否使用预处理语句以及在httpd.conf中能够使用什么样的语句,或者使用ap_dbd_prepare提供它们自己的指令。

空闲连接的持续时间

DBDExptime time-in-seconds

server config, virtual host

扩展(E)

mod_dbd

设置在超出DBDKeep指定的连接数时空闲连接允许的持续时间(仅用于线程化平台)。

每个进程持有的连接数

DBDKeep number

server config, virtual host

扩展(E)

mod_dbd

设置每个进程持有的连接数,不同于为了处理最高负荷的DBDMax指令(仅用于线程化平台)。

每个进程允许持有的最大连接数硬限制

DBDMax number

server config, virtual host

扩展(E)

mod_dbd

设置每个进程允许持有的最大连接数硬限制(仅用于线程化平台)。

每个进程必须持有的最小连接数

DBDMin number

server config, virtual host

扩展(E)

mod_dbd

设置每个进程必须持有的最小连接数(仅用于线程化平台)。

数据库的连接参数

DBDParams param1=value1[,param2=value2]

server config, virtual host

扩展(E)

mod_dbd

设置底层驱动程序所必须的连接参数。通常这些参数都是无法在连接时使用默认值的参数,比如:用户名、密码、数据库名、主机名、端口号。

当前的驱动程序所需要的连接字符串参数包括:

MySQL

host, port, user, pass, dbname, sock

Oracle

user, pass, dbname, server

PostgreSQL

直接通过PQconnectdb传递

SQLite2

使用分号分割,part1:part2将作为sqlite_open(part1, atoi(part2), NULL)使用。

SQLite3

直接通过sqlite3_open传递

是否使用持久连接

DBDPersist 0|1

server config, virtual host

扩展(E)

mod_dbd

设为0表示禁用持久连接和连接池。当客户端请求时建立新连接,完成请求后立即关闭连接。通常仅在调试或负载很低的情况下使用。

1(默认)表示启用一个持久链接池(或者在非线程型平台上使用一个单独的LAMP风格的持久连接)。应当在绝大多数情况下使用。

定义一个SQL预处理语句

DBDPrepareSQL "SQL statement" label

server config, virtual host

扩展(E)

mod_dbd

对于认证之类反复使用同一个SQL语句的模块,通过在启动时预处理指定的SQL语句而不是在每次使用时处理可以获得的最佳性能。该指令可以定义一个SQL预处理语句并为其分配一个标签(label)。

指定一个数据库驱动程序

DBDriver name

server config, virtual host

扩展(E)

mod_dbd

通过名字选择一个apr_dbd驱动程序。该驱动程序必须已经安装在你的系统上了(在Unix上是一个共享对象,在Windows上是一个动态连接库)。比如:DBDriver mysql表示选择apr_dbd_mysql.so中的MySQL驱动程序,而DBDriver pgsql则表示选择apr_dbd_pgsql.so中的PostgreSQL驱动程序。

apr dbd mysql.so_mod_dbd相关推荐

  1. DBD::mysql::db do failed: Table cl_access was locked with a READ lock and can't be updated

    DBD::mysql::db do failed: Table 'acl_access' was locked with a READ lock and can't be updated at /us ...

  2. 遭遇DBD::mysql::dr::imp_data_size unexpectedly

    最近的MHA验证时,遭遇了DBD::mysql::dr::imp_data_size unexpectedly这个错误.而DBD这个包已经是安装过了的.下面是这个问题的描述和解决方案. 1.故障描述 ...

  3. 【MAC】Mac下配置perl的DBD::MySQL模块

    1.概述 pt-variable-advisor是pt工具集的一个子工具,主要用来诊断你的参数设置是否合理.我想运行这个结果报错如下 (base) lcc@lcc percona-toolkit-3. ...

  4. DBD::mysql的安装

    其实已经装过很多次了,不过以前从来没有遇到今天这样的问题.虽然其实所有的环境配置都是一样的:RHEL4, Perl 5.8.5, MySQL4.1.8. 以前也遇到过报错信息为找不到mysql_con ...

  5. perl dbd mysql 5.7_perl-DBD-MySQL 无法安装

    问题描述: 在使用innobackupex 中出现了错误 -bash-4.1$ innobackupex --defaults-file=./my_3304.cnf --user=xtrabk --p ...

  6. cpan mysql dbd_Perl中DBI、DBD::mysql模块的安装

    使用的软件版本 DBI-1.609.tar.gz DBD-mysql-4.012.tar.gz 建议使用以上版本搭配,否则可能连接mysql错误 一.DBI的安装 wget http://www.cp ...

  7. dbd mysql db_mysqlhotcopy备份时出现“DBD::mysql::db do faile\问题-huifeideluotuo-ChinaUnix博客...

    今天早上去检查mysql备份的信息,我这边是用 mysql-zrm 软件进行备份的,在检查备份log的时候,发现有下面这样的错误信息: BackupSet1:backup:INFO: PHASE ST ...

  8. dbd mysql dbi_MySQL的DBI/DBD简明安装手册

    任何相关的软件包可从http://mysql.com/download_perl.html下载.0WA ^r |0 建议您首先安装data-dumper-?.??.tar.gz:(?.??是版本号,现 ...

  9. dbd mysql_解决无法安装DBD::mysql模块

    转载自:http://www.php-oa.com/2010/10/29/perl-mysql-%e7%9a%84%e6%a8%a1%e5%9d%97%e4%b8%8d%e8%83%bd%e5%ae% ...

最新文章

  1. PyCharm导入numpy包遇到的问题
  2. ubuntu常用配置整理
  3. 预备作业02 20162316刘诚昊
  4. 计算机二级mysql是什么_计算机二级mysql考什么内容?
  5. SpringBootTest测试类报错:Suppressed: java.lang.IllegalStateException: Unable to find a @SpringBootCon
  6. python压缩视频_如何压缩视频大小?
  7. python 三角形雷达图,python 画雷达图
  8. 在word中做复选框打对勾钩
  9. 什么软件测试情侣头像,情侣头像另一半查找器
  10. 是java运行时环境的缩写,java运行环境的英文缩写
  11. mac +xcode 下WebDriverAgent环境配置
  12. 【数据异常校验】T检验或T测试(T-test)
  13. Android user版通过adb_enable开启adb 调试 不提示对话框
  14. 反思前行——工作后第一个模块复盘总结
  15. synchronized,ReentrantLock、ReentrantReadWriteLock和StampedLock
  16. xampp+phpstorm使用xdebug
  17. 文件名 目录名或卷标语法不正确 java_java.io.FileNotFoundException:文件名、目录名或卷标语法不正确...
  18. java 消除魔鬼数字方法_消除Java详细信息的简便方法
  19. 计算机硬盘能否做u盘用怎么用,U盘能当电脑硬盘用么
  20. 【综合案例】信用评分模型开发

热门文章

  1. 计算思维(美国CMU周以真教授)
  2. 中国品牌亮相第六届加拿大服装纺织品采购展
  3. 为什么服务网页打开需要很久,点击之后计算机在处理什么,为什么我打开电脑桌面全部显示出来后要等很久才能打开连接.doc...
  4. 秘猿发布企业级开源区块链产品CITA
  5. 证件照背景颜色怎么用手机换
  6. vs2017旗舰版_2017年的所有旗舰手机都有明显的妥协。 这是他们告诉我们有关设计的信息。...
  7. 龙ol服务器维护补偿boss,《龙OL》12月17日更新公告
  8. windows2003 升级sp1,sp2 产品密匙无效
  9. 从“Real如我”来看当前社交APP开发-深圳积木创意科技
  10. DataWhale活动-二手车价格预测 task3