`
丁林.tb
  • 浏览: 797207 次
  • 性别: 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-go-mysql-elasticsearch-自动同步你的MySQL数据到Elasticsearch

    总的来说,`go-mysql-elasticsearch` 是一个强大的数据同步工具,它结合了 Go 语言的性能优势和 MySQL 与 Elasticsearch 的数据处理能力,为需要实时数据同步的项目提供了有效支持。通过深入了解和使用这个工具,你...

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

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

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

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

    amoeba-mysql-binary-2.2.0.tar.gz

    amoeba-mysql-binary-2.2.0.tar.gz amoeba-mysql-binary-2.2.0.tar.gz amoeba-mysql-binary-2.2.0.tar.gz amoeba-mysql-binary-2.2.0.tar.gzamoeba-mysql-binary-2.2.0.tar.gz amoeba-mysql-binary-2.2.0.tar.gz ...

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

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

    auditplugin-mysql5.7

    日志安全审计插件,原官网已经无法下载 mysql 5.7社区版安全审计插件audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip mysql 5.7社区版安全审计插件audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip mysql 5.7...

    开源项目-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服务器进行交互变得简单而高效。我们将会讨论其版本...

    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。在大数据处理和...

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

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

    async-mysql-connector-1.6.jar

    async-mysql-connector-1.6.jar async-mysql-connector-1.6.jar async-mysql-connector-1.6.jar async-mysql-connector-1.6.jar async-mysql-connector-1.6.jar async-mysql-connector-1.6.jar async-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中广泛使用...

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

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

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

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

    go-mysql-mongodb:将MySQL数据同步到MongoDB

    go-mysql-mongodb是一项将MySQL数据自动同步到MongoDB的服务。 它首先使用mysqldump来获取原始数据,然后与binlog增量同步数据。 安装 安装Go( )并设置您的 go get github.com/WangXiangUSTC/go-mysql-mongodb ...

    DBD-mysql-4.031

    DBD-mysql-4.031 是DBD::mysql的一个版本,它允许Perl程序员使用Perl语言来编写MySQL数据库的应用程序。该模块提供了连接、查询、事务处理、结果集处理等基本功能,同时也支持更高级的特性,如预编译的语句、存储...

    Connector/Net is a fully-managed ADO.NET driver for MySQL.

    Connector/Net is a fully-managed ADO.NET driver for MySQL. MySql 的 ADO.NET 驱动 版本 6.3.5.0 适用于 .net 4.0

Global site tag (gtag.js) - Google Analytics