安装好

quercus报错:

 D:\apache-tomcat-5.5.27\webapps\wfx\conn\mysql.php:9: Warning: A link to the server could not be established. url=jdbc:mysql://localhost:3306/fenyong?jdbcCompliantTruncation=false&characterSetResults=ISO8859_1&characterEncoding=ISO8859_1 driver=com.mysql.jdbc.Driver com.caucho.quercus.QuercusModuleException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 无法连接数据库. 错误信息为: com.caucho.quercus.QuercusModuleException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

quercus记录:php使用连接池访问数据库

Posted on 2011-11-04 by 54chen

上周记录了如何用quercus建立混合型项目。
http://www.54chen.com/php-tech/quercus-notes-php-java-mixed-projects.html
这里来说说与数据库的访问,使用jndi得到连接池的好处。

JNDI
(Java Naming and Directory Interface)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。

正题
在quercus中可以随意使用mysql_connect与mysql_pconnect两个方法来连接数据库。
当在web.xml定义得有database相关的消息时,mysql_connect与mysql_pconnect都会自动忽略里面的参数设置,直接使用web.xml的定义。

添加jndi设置:
vim WEB-INF/web.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <web-app  xmlns="http://caucho.com/ns/resin">
  3. <description>truth application</description>
  4. <database jndi-name="jdbc/mysql">
  5. <driver type="com.mysql.jdbc.Driver">
  6. <url>jdbc:mysql://192.168.1.5:3306/truth?useUnicode=true&amp;characterEncoding=utf-8</url>
  7. <user>你的用户名</user>
  8. <password>你的密码</password>
  9. <init-param useUnicode="true"/> <!--实践证明这个是不管用的,因为quercus写土了,全用的latin1字符集,后面再说-->
  10. </driver>
  11. </database>

使用的是resin4,需要继续在web.xml的servlet段里增加:

  1. <init-param>
  2. <param-name>database</param-name>
  3. <param-value>jdbc/mysql</param-value>
  4. </init-param>

这里注意,param-value与上面的jndi-name对应,mysql_connnect函数在web.xml里有这个init-param的定义的时候,将使用对应的jndi的设置。由此可得到连接池的好处。

上面的例子只使用了jdbc的基础驱动,如果向下面的配置,自然就得到了pool:
例子1:

  1. <database>
  2. <jndi-name>jdbc/mysql</jndi-name>
  3. <driver> <type>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</type>
  4. <url>jdbc:mysql://localhost:3306/dbname</url>
  5. <user>username</user>
  6. <password>password</password>
  7. <init-param useUnicode="true"/>
  8. </driver>
  9. </database>

例子2:

  1. <database>
  2. <jndi-name>jdbc/mysql</jndi-name>
  3. <driver type="org.gjt.mm.mysql.Driver">
  4. <url>jdbc:mysql://localhost:3306/test</url>
  5. <user></user>
  6. <password></password>
  7. </driver>
  8. <prepared-statement-cache-size>8</prepared-statement-cache-size>
  9. <max-connections>20</max-connections>
  10. <max-idle-time>30s</max-idle-time>
  11. </database>

这些简单的配置,都可以让php轻松跑在连接池上。
问题所在:
quercus写土了,没有在用户设置为unicode的时候来解析用户的输入,到处是hard code的latin1。(本来在GAE里使用这东西的人挺多的,可惜吧,AGE被盾了,然后quercus反馈latin1问题的人也不多,唉。)

  1. com.caucho.quercus.lib.db.JdbcConnectionResource: 94  348
  2. com.caucho.quercus.lib.db.Mysqli:229

上面三处修改为utf8即可。

原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com] 
本文链接: http://www.54chen.com/php-tech/quercus-php-connect-pool.html

This entry was posted in php and tagged java, php, quercus. Bookmark the permalink.

tomcat 配置 quercus记录:php使用连接池访问数据库相关推荐

  1. 【Spring】使用数据源连接池访问数据库

    Spring并没有提供数据源连接池实现,但是可以选择其他开源的实现: Apache Commons DBCP ( http://jakarta.apache.org/commons/dbcp[reti ...

  2. springboot集成mongodb 连接池 多数据库源,源码demo

    上一篇介绍了 springboot集成mongodb 多数据库源切换 源码demo 开发环境: windows 7 idea windows64 mongodb 如果没安装运行 点这里 navicat ...

  3. 阿里巴巴云连接池durid数据库密码加密

    阿里巴巴连接池durid数据库密码加密      刘振兴     代码分享     2017年05月05日    374    暂无评论   先贴上本人durid 的配置 <!-- 阿里巴巴连接 ...

  4. JDBC通过连接池链接数据库总是失败的解决办法

    应用服务器:glassfish JDBC通过连接池链接数据库总是失败,通过查看日志,发现是APACHE报DHCP 错误, 只需要通过访问4848端口的管理程序,重新PING下JDBC当前连接池即可.

  5. spring-boot配置MySQL数据库连接、Hikari连接池、和Mybatis的简单方法

    此方法为极简配置,支持MySQL数据库多库连接.支持Hikari连接池.支持MyBatis(包括Dao类和xml文件位置的配置). 如果需要更灵活的自定义配置(比如支持分页插件),请参考:http:/ ...

  6. 记录一个c3po连接池APPARENT DEADLOCK解决方法

    在使用c3p0数据池时,如果连接池参数配置不当,可能会引发一个意想不到的问题. 数据库:Oracle c3p0版本:0.9.5.2 数据源配置: application.xml <bean id ...

  7. 配置 Hibernate 以使用 C3P0 连接池

    通过本教程,我想与您分享如何配置您的 Java 项目以及它的休眠配置文件 hibernate.cfg.xml 以使用更专业和生产就绪的连接池提供程序C3P0. Hibernate 的内部连接池算法是初 ...

  8. mysql连接池_数据库技术:数据库连接池,Commons DbUtils,批处理,元数据

    Database Connection Pool Introduction to Database Connection Pool 实际开发中"获得连接"或"释放资源&q ...

  9. druid连接池因数据库故障导致主线程挂起停止响应的优化

    快速翻看 一.问题背景 二.问题排查 三.问题原因 四.问题解决 五.总结 一.问题背景 某天晚上,突然收到运维同事反馈说系统告警,A系统调用B系统出现大量超时,通过日志分析,B系统中出现了大量的my ...

最新文章

  1. python05-字符串和字典
  2. 2020秋季学期教学委员会第一次全体会议
  3. 总线控制内部eep_CAN总线在新能源汽车中的通信网络设计及应用分析
  4. vs2019创建android,Visual Studio 2019编写的安卓程序,生成失败
  5. MAC-VBox-Centos6.6安装增强功能
  6. 19linux关机重启20登录注销
  7. python---之round
  8. HDU - 2196(树形DP)
  9. 商业计划书范文3000_清远可以写商业计划书做的报告范文
  10. centos7.6安装Kubernetes1.14.1集群
  11. 国际著名黑客大赛介绍与比较
  12. 研究开源的C++的RTB广告系统,通过centos7镜像,解决各种环境问题,使用boost库
  13. 基于边缘检测和模型拟合检测车道线
  14. 西安建筑科技大学计算机系专业怎么样,西安建筑科技大学好就业吗?附西安建筑大学就业年薪...
  15. html keyframes无效,CSS Module解决全局或本地使用@keyframes无效问题
  16. 韦东山 IMX6ULL和正点原子_stm32入门开发板选野火还是正点原子好,哪个的视频讲到好一点?...
  17. java计算机毕业设计师资管理系统源码+系统+数据库+lw文档+mybatis+运行部署
  18. 下载Xshell6和Xftp6
  19. 学习资料/中文网大放送
  20. P1638 逛画展(尺取)

热门文章

  1. 法拉第未来:数百名休假员工下周将无法重返工作岗位
  2. 【物流推荐】结合AGV/WCS/堆垛机的自动化立体库AS-RS设计前需要做哪些工作?
  3. 狼疮性肾炎,这4个问题你需要知道
  4. 竞业禁止协议 non-compete agreement
  5. 终于搞清楚正态分布、指数分布到底是啥了!
  6. 单例模式在DRP中的应用
  7. 南京林业大学计算机教学实验中心,xldz - 南京林业大学电工电子教学实验中心.ppt...
  8. NetInside网络安全分析保障某港口护网行动(二)
  9. 网络安全入门必知的OWASP top 10漏洞详解
  10. oracle通过cmd导入dmp文件和一些常见问题