最近有个项目,要改用达梦数据库,记录一下操作步骤,供大家参考
1,安装达梦数据库
这个直接到达梦数据库官网下载,开发者注册一下,免费下载学习用,商用的自己购买版权。
根据提示安装,这里用WIN7测试的。安全完后打开,创建数据库,一切顺利。操作与mssql或mysql差不多。
2,迁移数据
将MySQL数据迁移进达梦,达梦软件自带了迁移工具,支持各数数据的迁移;
期间遇到各种问题:
1,直连腾讯云数据库做迁移,能链接上,但是迁数据时报错,显示表分析出错,预览时能查看数据,执行时报错,不知是什么原因。然后更换方法2
2,把腾讯云mysql数据导出为sql文件,然后用迁移工具导入,又报错,应该是数据格式不兼容的问题,然后换方法3
3,在本地再搭了个mysql数据库,通过sql文件导入数据,然后再用迁移工具连本地数据库做迁移,成功。这里建议用root用户,之前尝试新建用户去执行竟然连接不上本地mysql数据库。
3,本地PHP环境加达梦驱动
本地win7安装phpStudy测试;
达梦数据库安装目录里面提供了文件 pdo73nts_dm.dll
php73nts_dm.dll(根据自己的php版本选择)
复制到php扩展目录ext下
用编辑工具打开php.ini
php.ini中在末尾添加
extension=pdo73nts_dm
extension=php73nts_dm
重启Apache服务,运行 php -m ,测试dm数据库驱动加载成功
如果加载失败报“PHP Fatal error: Unable to start DM module in Unknown on line 0
”,
则将将达梦数据库安装目录bin下的以下dll文件拷贝至C:\Windows\SysWOW64
和C:\Windows\System32
,重新启动Apache。
phpinfo里面可以看到下图则表示成功
4,PHP链接数据库是否成功
以下代码网上复制的。参考
date_default_timezone_set("Asia/Shanghai");header("Content-type:text/html; Charset=utf-8"); $dm_conf = array( 'host'=> '127.0.0.1:5236', //连接地址及端口 'db'=> 'DBNAME', //数据库名 'db_user' => 'SYSDBA', //用户名 'db_pwd'=> '123456789', //密码); $pdo = new PDO("dm:host=".$dm_conf['host']."; dbname=".$dm_conf['db']."",$dm_conf['db_user'],$dm_conf['db_pwd'] );
输入的中文数据是乱码,则在这里C:\windows\System32\dm_svc.conf
打开加一行
CHAR_CODE=(PG_UTF8)
5,thinkphp框架改造
1,增加DM数据库驱动类,让tp支持达梦数据库,
在目录下\ThinkPHP\Library\Think\Db\Driver增加Dm.class.php文件
2,修改数据库连接配置文件为达梦数据库
PHP
<?php
return array(
'DB_TYPE' => 'Dm',
'DB_HOST' => 'localhost', // 服务器地址
'DB_USER' => 'SYSDBA', // 用户名
'DB_PWD' => '******', // 密码
'DB_PORT' => '5236', // 端口
'DB_NAME' => 'OA', // 数据库名
'DB_PREFIX' => '', // 数据库表前缀
);
然后测试一下,数据查询功能,成功
PHP
public function test(){
$m=M('test');
$data=$m->field('ID,NAME')->limit(10,3)->select();
dump($data);
echo $m->getLastSql();
}
完善支持THINKPHP3.2的原开发程序。项目不用大改,不过只是测试了查询功能,其它 增、删、改 没空测试,大家自己测试。应该也差不多了