SQL Server 2005 定时从MySQL读取数据
最近需要实现这样一个功能,游戏的数据库是MySQL,而我做的统计的数据库是SQL Server 2005,每天需要将多台MySQL的数据统计到SQL Server中,我们知道在SQL Server 2005 中可以才用SQL Server 代理来实现定时操作,但是如何访问MySQL呢?
- 需要安装mysql-connector-odbc-5.1.4-win32.msi,可以去MySQL是官方网站下载。
- 添加系统DSN,选择MySQL ODBC 5.1 Driver ,如图:
- 执行如下sql
EXEC sp_addlinkedserver @server = 'test', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = test GO |
以上sql只需执行一次即可
- 然后就可以直接读取mysql的数据了
EXEC sp_addlinkedsrvlogin @rmtsrvname='test',@useself='false',@locallogin='sa',@rmtuser='root',@rmtpassword='root' insert into Sys_online ( areaid, [online], createDate)
( SELECT '1' as areaid, [online], createDate FROM OPENQUERY (test ,'select online, createDate from t_server_log where createDate between date_sub(current_date(),interval 1 day) and current_date()' ) ) |
记得修改以上sql的中的mysql的用户名密码