• odbc 通过 sql server 客户端 连接 mysql


    原文:通过sql server 连接 mysql - 走看看 (zoukankan.com)

    EXEC master.dbo.sp_addlinkedserver   
    @server = N'MYSQL',   
    @srvproduct=N'MySQL',   
    @provider=N'MSDASQL',   
    @provstr=N'DRIVER={MySQL ODBC 5.3 ANSI Driver}; SERVER=192.168.200.106:3306; _  
    DATABASE=system_analysis; USER=liuyuan; PASSWORD=123123; OPTION=3'  
    
    SELECT * FROM OPENQUERY(MYSQL_DBLINK, 'select * from tableName where id=''1''')
    --在 sqlserver 下 复制一张表 语法是 : select * into tablenew from tableold
    SELECT * into tableRisk  FROM OPENQUERY(MYSQL_RISK, 'select * from user_alipay_history limit 1000')
    • 步骤

      1、在SQL SERVER服务器上安装MYSQL ODBC驱动;

      驱动下载地址:http://dev.mysql.com/downloads/connector/odbc/

      2、安装好后,在 控制面板 - 管理工具 - ODBC数据源 - 系统DSN - 添加 - 选择 MYSQL ODBC 5.3 Unicode DRIVER - 完成

      这时会跳出来MYSQL连接参数

      Data Source Name:数据源名称

      Decription:描述,随便写

      Server:MYSQL服务器的IP

      Port:MYSQL的端口,默认的是3306.可以改的.

      User:连接账号(在mysql上授权的账号,同时给予相应权限)

      Password:密码

      Database:选择链接的数据库

      填好之后,点下test.成功了则会如图跳出提示框.

      3,打开SQL数据库,找到链接服务器.创建链接服务器,参数如图,其他的就不用填了.确定就行了.

      这里,需要注意:访问接口要选择  “ Microsoft OLE DB Provider for ODBC Drivers ”。

      数据源:选择之前已创建好的 ODBC 接口。

      然后在安全性中

      选择 使用此安全上下文创建连接

      填写 MYSQL 数据库的登陆名和密码

      4、sql 语句使用

      复制代码
       --查询
      SELECT * FROM OPENQUERY(MYSQL_DBLINK, 'select * from tableName where id=''1''')
      
      --修改
      UPDATE OPENQUERY(MYSQL_DBLINK, 'select * from tableName where id=''1''') set cname='测试'
      --or
      UPDATE OPENQUERY(MYSQL_DBLINK, 'select * from tableName ') set cname='测试' where id=1
      
      --添加
      INSERT INTO OPENQUERY(MYSQL_DBLINK, 'select * from tableName where 1=0')values ('xx','xx','xx');  
      
      --删除
      DELETE  FROM OPENQUERY(MYSQL_DBLINK, 'select * from tableName where id=''1''')

      复制代码

        **【注意】在查询的时候如果出现: 链接服务器 'MYSQL_DBLINK' 的 OLE DB 访问接口 'MSDASQL' 返回了对列 '[MSDASQL].cname' 无效的数据。 

      需要在MYSQL ODBC数据源上设置符合你的编码格式,如图:

      5、OPENQUERY用法

      对给定的链接服务器执行指定的传递查询。该服务器是 OLE DB 数据源。OPENQUERY 可以在查询的 FROM 子句中引用,就好象它是一个表名。OPENQUERY 也可以作为 INSERT、UPDATE 或 DELETE 语句的目标表进行引用。但这要取决于 OLE DB 访问接口的功能。尽管查询可能返回多个结果集,但是 OPENQUERY 只返回第一个。

      Transact-SQL 语法约定

      语法

      OPENQUERY ( linked_server ,'query' )

      参数

      linked_server

      表示链接服务器名称的标识符。

      ' query '

      在链接服务器中执行的查询字符串。该字符串的最大长度为 8 KB。

      备注

      OPENQUERY 不接受其参数的变量。

      在 SQL Server 2000 和更高版本中,OPENQUERY 不能用于对链接服务器执行扩展存储过程。但是,通过使用四部分名称,可以在链接服务器上执行扩展存储过程。例如:

      EXEC SeattleSales.master.dbo.xp_msver
      
      

      权限

      任何用户都可以执行 OPENQUERY。用于连接到远程服务器的权限是从为链接服务器定义的设置中获取的。

  • 相关阅读:
    Java根据html模板创建 html文件
    java.lang.NumberFormatException: For input string:"filesId"
    使用java开源工具httpClient及jsoup抓取解析网页数据
    JBPM5流程设计器jbpm-designer-2.4.0.Final-tomcat.war的部署没法访问的问题
    MyEclipse8.0 注册码生成代码
    图片转为byte[]、String、图片之间的转换
    java中Xml、json之间的相互转换
    java二维码小试牛刀
    进度条脚本
    如何制作一寸、二寸、六寸照片。以后不用再去照相馆了!!! 转~版本更新
  • 原文地址:https://www.cnblogs.com/chang09/p/16575106.html
Copyright © 2020-2023  润新知