`
丁林.tb
  • 浏览: 796692 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

mymysql与go-mysql-driver的一个区别

阅读更多

今天要写个工具就想顺便学下go。网上翻了下发现用比较多的是mymysqlgo-mysql-driver

  这两个驱动网上比较的文章也有些了,不过都没有提到一个点,个人觉得是很重要的,记录一下。

  

       先看使用go-mysql-driver的例子。

   db,_:=sql.Open("mysql",connect_string)

   db.Query("set binlog_format=row")

 

   rows,_:=db.Query("select @@binlog_format")

   forrows.Next(){

     varvstring

     rows.Scan(&v)

     fmt.Println(v)  // 输出是MIXED (global)

   }  

   rows.Close()

   db.Close()

 

 从上面的输出可以看到,set语句无效。

原因是在database/sql这个库实现中, 上面的变量db维护的是一个线程池,而不是一个线程,因此前后两次执行db.Query并不保证在同一个session里面。

同样的, set @a=1,这种线程变量也是可能在后续的select中得不到1这个值。

 

 

由于mymysql 不是基于database/sql,以下代码能确保输出19

 

mydb := mysql.New("tcp", "", "ip:port”, user, password, dbname)

    mydb.Connect()

    mydb.Query("set @a=19")

    res, _ := mydb.Start("select @a")

    for {

      row, _ := res.GetRow()

      if row == nil {break}

      fmt.Println(row.Str(0))

    }  

   

    mydb.Close()

0
0
分享到:
评论

相关推荐

    github.com/go-sql-driver/mysql

    `github.com/go-sql-driver/mysql`是Go语言中用于连接MySQL数据库的一个驱动程序,它实现了`database/sql`包的接口,使得开发者可以方便地进行数据库交互。这个驱动为Go程序员提供了一个高效、简洁的方式来与MySQL...

    go-mysql-transfer是一款MySQL数据库实时增量同步工具.rar

    go-mysql-transfer是一款MySQL数据库实时增量同步工具。 能够监听MySQL二进制日志(Binlog)的变动,将变更内容形成指定格式的消息,实时发送到接收端。从而在数据库和接收端之间形成一个高性能、低延迟的增量数据...

    Go-go-mysql-一个Go工具集用于处理MySQL协议和复制

    `go-mysql` 是一个用Go语言编写的工具集合,专门设计来处理MySQL协议和复制功能。这个库提供了强大的能力,使得开发者能够轻松地在Go应用程序中与MySQL服务器进行交互,以及处理MySQL的主从复制逻辑。在本文中,我们...

    Go-go-mysql-server一个Go实现的可扩展MySQL服务器

    go-mysql-server是一个SQL引擎,能解析标准SQL(基于MySQL语法)并优化查询。 它提供了简单的接口,允许自定义表格数据源实现。提供与MySQL协议兼容的服务器实现。 这意味着它与MySQL ODBC,JDBC或默认的MySQL客户端...

    Go-mysql-schema-sync是一款使用Go开发跨平台的MySQL表结构自动同步工具

    针对这一需求,Go-mysql-schema-sync应运而生,它是一款由Go语言开发的跨平台MySQL表结构自动同步工具,旨在高效解决多环境下的数据库结构同步问题。 Go-mysql-schema-sync的主要特点和优势: 1. **跨平台性**:...

    开源项目-pubnative-mysqldriver-go.zip

    【开源项目-pubnative-mysqldriver-go.zip】是一个针对Go语言的开源MySQL驱动程序,旨在提供高效、GC(垃圾收集)优化的数据连接方案。这个项目由PubNative团队开发,目的是为Go开发者提供更好的MySQL数据库访问性能...

    go-sql-driver.zip

    在本文中,我们将深入探讨`go-sql-driver.zip`中包含的`go-sql-driver`,这是一个用于Go语言(Golang)的MySQL数据库驱动。这个驱动程序使得在Go应用程序中与MySQL服务器进行交互变得简单而高效。我们将会讨论其版本...

    Go-GoMySQLDriver一个轻量级和快速的MySQL驱动Go程序

    Go MySQL Driver是一个专门为Go语言设计的轻量级且高效的MySQL数据库驱动程序,它使得Go语言与MySQL数据库之间的交互变得更加简单和高效。这个驱动程序遵循了Go的`database/sql`包的接口规范,允许开发者利用Go的...

    TPCC-MYSQL安装及使用

    TPCC-MYSQL是一个流行的MySQL压测工具,用于评估MySQL数据库的性能。以下是TPCC-MYSQL的安装过程及使用方法的详细介绍。 安装 ---- 首先,需要从GitHub上下载TPCC-MYSQL的源代码,并将其解压缩到本地目录中。然后...

    DBD-mysql-4.050.tar.gz

    标题 "DBD-mysql-4.050.tar.gz" 暗示着这是一个与数据库接口相关的软件包,特别是用于Perl编程语言的DBD(Database Driver for Perl)模块,用于连接和操作MySQL数据库。"4.050"是这个模块的版本号,通常代表着软件...

    go-mysql-canal:数据库binlog监听,elasticsearch同步

    `go-mysql-canal` 是一个基于 Go 语言实现的 MySQL 数据库 binlog 监听工具,它的主要功能是实时捕获并解析 MySQL 的二进制日志(binlog),然后将这些变化的数据同步到其他系统,如 Elasticsearch。在大数据处理和...

    DBD-mysql-4.038.tar.gz

    DBD-mysql是Database Driver for MySQL的缩写,是Perl DBI(Database Interface)的一部分,DBI是Perl语言中一个通用的数据库接口,允许开发者使用相同的API与多种数据库进行交互。DBD-mysql模块则专为与MySQL数据库...

    perl-DBD-MySQL-4.013-3.el6.x86_64.rpm

    perl-DBD-MySQL-4.013-3.el6.x86_64.rpm

    mysql安装教程(保姆级)-mysql-8.0.32-winx64

    mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程...

    mysql-connector-java-5.1.6---jdbc_driver

    首先,MySQL JDBC驱动,也称为`mysql-connector-java`,是一个实现了Java Database Connectivity (JDBC) API的软件组件,允许Java应用程序通过网络与MySQL服务器交互。`mysql-connector-java-5.1.6`是该驱动的一个...

    DBD-mysql-4.010.tar.gz

    DBD-mysql-4.010.tar.gz 是一个用于Perl编程语言的数据库接口模块,DBD(Database Driver for Perl)是Perl DBI(Database Independent Interface)的一部分,它提供了与MySQL数据库交互的能力。DBI是Perl中广泛使用...

    go-mysql-server:Go中可扩展MySQL服务器实现

    go-mysql-server是一个SQL引擎,用于解析标准SQL(基于MySQL语法),解析和优化查询。 它提供了简单的界面,以允许自定义表格数据源实现。 go-mysql-server还提供了与MySQL有线协议兼容的服务器实现。 这意味着它...

    MySQL ODBC 5.1 Driver(Mysql驱动免安装版)

    MySQL ODBC 5.1 Driver 是一个用于连接MySQL数据库的开放数据库连接(ODBC)驱动程序,它允许用户通过标准的ODBC接口访问MySQL数据库,适用于Windows操作系统。这个版本是免安装的,意味着用户可以直接解压使用,...

    flink-connector-mysql-cdc-2.2

    Flink CDC Connectors 2.2源码修改,适配Flink 1.14.2(MySQL)

    flink-sql-connector-mysql-cdc-1.2.0.jar

    flink cdc mysql jar包,2021年最新版

Global site tag (gtag.js) - Google Analytics