1.windows安装达梦数据库,去官网下载 dm8 进行安装,安装后,可以使用管理工具管理数据
使用迁移工具对数据进行迁移;
2.使用php 或者 thinkphp连接达梦数据库
2.1、先PHP开启DM扩展
从达梦数据库安装目录下drivers/php_pdo 复制对应的文件到 php 安装目录下的 ext目录下
pdo73nts_dm.dll
php73nts_dm.dll
extension=pdo74nts_dm.dll
extension=php74nts_dm.dll
2.2 、到数据库服务器的%DM_HOME%\drivers\dpi,找到以下dll文件
dmdpi.dll
dmclientlex.dll
dmutl.dll
dmstrt.dll
dmshm.dll
dmos.dll
dmmsg.dll
dmmout.dll
dmmem.dll
dmelog.dll
dmdta.dll
dmdcr.dll
dmcyt.dll
dmcvt.dll
dmcpr.dll
dmcomm.dll
dmcfg.dll
dmcalc.dll
放到php根目录,当前目录下
重启服务器,如果遇到服务器启动不了,可能是缺少了一些dll文件,可以多复制一些进去然后再启动;
然后使用 php -m 或的 phpinfo() 查看模块是否启动,如果看到DM 和 PDO_DM 则表示启动完成;
然后就可以使用程序连接数据库了
<?php
try
{
$link = dm_connect("localhost:5236", "SYSDBA", "cdbottle123")
or die("Could not connect : " . dm_error()."\n");
//使用 dm_error 会显示 dm 的 php 接口返回的错误,执行成功,则继续往下执行。
print "php: Connected successfully"."\n";
/*断开连接*/
dm_close($link);
}
catch(Exception $e)
{
$e->getMessage() . "<br/>";
}
?>
如果看到 ,
表示连接成功,如果遇到 dpi_login: -70089 加密模块加载失败,则可能是文件没有放到 system32文件夹下,然后把数据库安装目录下 bin下面的*. dll文件放到system32下(如果不行就全部放)
如果放了,一般就成功了;
然后就可以使用 迁移工具对数据进行迁移,达梦一个模式下就代表一个数据库(用户),可以先创建数据库,在做迁移工作;
注意:如果使用 pdo(thinkphp5.1 获取数据时,默认使用pdo),如果发现中午乱码,是因为
PDO方式下,即使设置了数据库为UTF-8编码,使用php的pdo方式查询出的数据依然是GBK编码。
解决办法:
打开C:\windows\System32\dm_svc.conf
文件,(dm_svc.conf为刚才放入的文件
)新增一行:
CHAR_CODE=(PG_UTF8)
即可
迁移数据前,一般是先在达梦创建好用户后在迁移
create tablespace CQSE_RECOM datafile 'CQSE_RECOM.DBF' size 128 CACHE = NORMAL;
create user CQSE_RECOM identified by "cdbottle123" default tablespace CQSE_RECOM default index tablespace CQSE_RECOM;
grant public,resource,vti,soi to CQSE_RECOM;
兼容 mysql 需要在数据库中执行下,然后重启数据库 命令:
sp_set_para_value(2,'COMPATIBLE_MODE',4);
thinkphp5.1 对接达梦数据库:tp5(ThinkPHP 5.1)连接达梦数据库_thinkphp 达梦-CSDN博客
laravel 对接达梦数据库:dm适配Laravel | 达梦技术社区