当前位置: 首页 > news >正文

PHP环境安装达梦数据库驱动实操

PHP环境安装达梦数据库驱动实操


一、环境准备

  1. 达梦数据库安装

    • 从达梦官网下载对应系统版本的DM8开发版或企业版,完成安装并确保数据库服务正常运行。
    • 安装后需记录数据库的安装路径(如Windows默认路径为D:\dmdbms,Linux为/dm/server),后续配置会用到。
  2. PHP环境要求

    • PHP版本需与达梦驱动兼容(推荐7.2+,需确认线程安全类型:TS或NTS)。
    • 通过phpinfo()查看PHP扩展目录(extension_dir)及线程安全状态(Thread Safety)。

二、Windows系统安装步骤

1. 获取达梦PHP驱动文件

  • 在达梦安装目录的drivers/php_pdo子目录下找到对应PHP版本的驱动文件(如php73_dm.dllpdo73_dm.dll),注意区分线程安全(TS)与非线程安全(NTS)版本。

2. 配置PHP扩展

  • 复制驱动文件:将php73_dm.dllpdo73_dm.dll复制到PHP的ext目录(如D:\php7.3\ext)。
  • 修改php.ini
    php.ini末尾添加以下内容(路径替换为实际驱动文件路径):
    extension=D:\dmdbms\drivers\php_pdo\php73_dm.dll
    extension=D:\dmdbms\drivers\php_pdo\pdo73_dm.dll
    
  • 添加依赖库:将达梦的bin目录(如D:\dmdbms\bin)添加到系统环境变量Path中,避免提示dmcalc.dll缺失。

3. 验证驱动加载

  • 重启Web服务器(如Apache/Nginx)或命令行执行php -m,检查输出中是否包含dmpdo_dm模块。
  • 若报错“Unable to start DM module”,需检查驱动文件版本与PHP是否匹配,或依赖库路径是否正确。

三、Linux系统安装步骤

1. 解决依赖冲突

  • 备份并删除冲突的so文件
    达梦的部分动态库(如libcrypto.so)可能与系统库冲突,需执行:
    cp -r /dm/server/bin /dm/server/bin3
    cd /dm/server/bin3
    rm -rf libcrypto.so libssl.so libtiff.so libxml2.so libxqilla.so
    
    删除对应的软链接。

2. 配置环境变量

  • 编辑/etc/profile,添加以下内容:
    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm/server/bin3"
    export DM_HOME="/dm/server"
    export PATH="$PATH:$DM_HOME/bin:$DM_HOME/tool"
    
  • 执行source /etc/profile使配置生效。

3. 加载驱动到系统库

  • 创建配置文件/etc/ld.so.conf.d/dameng.conf,写入达梦库路径:
    /dm/server/bin3
    
  • 执行ldconfig更新库缓存。

4. 配置PHP扩展

  • php.ini中添加:
    [PHP_DM]
    extension=/dm/server/drivers/php_pdo/libphp72_dm.so
    extension=/dm/server/drivers/php_pdo/php72_pdo_dm.so
    
  • 重启PHP-FPM或Web服务,通过php -m验证驱动加载。

四、连接达梦数据库示例代码

1. 使用PDO方式连接

<?php
$dsn = "dm:host=127.0.0.1;port=5236;dbname=DAMENG";
$user = "SYSDBA";
$password = "SYSDBA";try {$pdo = new PDO($dsn, $user, $password);echo "连接达梦数据库成功!";// 执行查询示例$stmt = $pdo->query("SELECT * FROM SYSOBJECTS");while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {print_r($row);}
} catch (PDOException $e) {die("连接失败: " . $e->getMessage());
}
?>

2. 使用达梦原生函数连接

<?php
$conn = dm_connect("127.0.0.1:5236", "SYSDBA", "SYSDBA");
if ($conn) {echo "连接成功!";dm_exec($conn, "CREATE TABLE test (id INT, name VARCHAR(20))");dm_close($conn);
} else {echo "连接失败!";
}
?>

五、常见问题排查

  1. 驱动未加载

    • 检查php.ini中扩展路径是否正确,确保文件权限可读。
    • 确认PHP版本与驱动版本匹配,线程安全类型一致。
  2. 依赖库缺失

    • Windows需将达梦bin目录加入Path;Linux需通过ldconfig更新库路径。
  3. 连接超时或拒绝

    • 检查达梦服务是否启动,防火墙是否开放端口(默认5236)。

六、参考文档

  • 达梦官方PHP驱动文档:https://eco.dameng.com/document/dm/zh-cn/faq/faq-php.html
  • Windows环境详细配置:CSDN博客:PHP7.3加载达梦驱动
  • Linux冲突库处理:CSDN博客:PHP加载达梦驱动

通过以上步骤,可确保PHP与达梦数据库的驱动正确安装及连接。建议在操作前备份系统配置,并根据实际环境调整路径参数。

http://www.lryc.cn/news/545663.html

相关文章:

  • Electron + Vite + React + TypeScript 跨平台开发实践指南
  • Java---入门基础篇(下)---方法与数组
  • 【分布式理论11】分布式协同之分布式事务(一个应用操作多个资源):从刚性事务到柔性事务的演进
  • 【文献阅读】Collective Decision for Open Set Recognition
  • Gorm中的First()、Create()、Update()、Delete()的错误处理
  • 【心得】一文梳理高频面试题 HTTP 1.0/HTTP 1.1/HTTP 2.0/HTTP 3.0的区别并附加记忆方法
  • Navicat连接虚拟机数据库详细教程
  • 委托者模式(掌握设计模式的核心之一)
  • DeepSeek-R1 论文笔记:通过强化学习提升大语言模型的推理能力
  • 实现Unity shader扭曲效果
  • 七星棋牌 6 端 200 子游戏全开源修复版源码(乐豆 + 防沉迷 + 比赛场 + 控制)
  • C++STL---<limits>
  • 一键安装Mysql部署脚本之Linux在线安装Mysql,脚本化自动化执行服务器部署(附执行脚本下载)
  • ES、OAS、ERP、电子政务、企业信息化(高软35)
  • 文生图开源模型发展史(2014-2025年)
  • OA办公系统自动渗透测试过程
  • Python标准库【os】5 文件和目录操作2
  • [代码规范]接口设计规范
  • 什么是最终一致性,它对后端系统的意义是什么
  • Unity学习笔记之——ugui的性能优化
  • Python接口自动化中操作Excel文件的技术方法
  • [Windows] 免费电脑控制手机软件 极限投屏_正式版_3.0.1 (QtScrcpy作者开发)
  • 游戏引擎学习第131天
  • Visual Studio Code集成MarsCode AI
  • partner‘127.0.0.1:3200‘ not reached
  • 蓝桥备赛(六)- C/C++输入输出
  • Flume
  • Java 大视界 -- Java 大数据中的时间序列数据异常检测算法对比与实践(103)
  • 三次握手内部实现原理
  • ES from size聚合查询10000聚合查询,是每个分片先聚合,再统计。还是所有节点查询1万条后,再聚合