今天要写个工具就想顺便学下go。网上翻了下发现用比较多的是mymysql和go-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()
相关推荐
`github.com/go-sql-driver/mysql`是Go语言中用于连接MySQL数据库的一个驱动程序,它实现了`database/sql`包的接口,使得开发者可以方便地进行数据库交互。这个驱动为Go程序员提供了一个高效、简洁的方式来与MySQL...
go-mysql-transfer是一款MySQL数据库实时增量同步工具。 能够监听MySQL二进制日志(Binlog)的变动,将变更内容形成指定格式的消息,实时发送到接收端。从而在数据库和接收端之间形成一个高性能、低延迟的增量数据...
`go-mysql` 是一个用Go语言编写的工具集合,专门设计来处理MySQL协议和复制功能。这个库提供了强大的能力,使得开发者能够轻松地在Go应用程序中与MySQL服务器进行交互,以及处理MySQL的主从复制逻辑。在本文中,我们...
go-mysql-server是一个SQL引擎,能解析标准SQL(基于MySQL语法)并优化查询。 它提供了简单的接口,允许自定义表格数据源实现。提供与MySQL协议兼容的服务器实现。 这意味着它与MySQL ODBC,JDBC或默认的MySQL客户端...
针对这一需求,Go-mysql-schema-sync应运而生,它是一款由Go语言开发的跨平台MySQL表结构自动同步工具,旨在高效解决多环境下的数据库结构同步问题。 Go-mysql-schema-sync的主要特点和优势: 1. **跨平台性**:...
【开源项目-pubnative-mysqldriver-go.zip】是一个针对Go语言的开源MySQL驱动程序,旨在提供高效、GC(垃圾收集)优化的数据连接方案。这个项目由PubNative团队开发,目的是为Go开发者提供更好的MySQL数据库访问性能...
在本文中,我们将深入探讨`go-sql-driver.zip`中包含的`go-sql-driver`,这是一个用于Go语言(Golang)的MySQL数据库驱动。这个驱动程序使得在Go应用程序中与MySQL服务器进行交互变得简单而高效。我们将会讨论其版本...
Go MySQL Driver是一个专门为Go语言设计的轻量级且高效的MySQL数据库驱动程序,它使得Go语言与MySQL数据库之间的交互变得更加简单和高效。这个驱动程序遵循了Go的`database/sql`包的接口规范,允许开发者利用Go的...
TPCC-MYSQL是一个流行的MySQL压测工具,用于评估MySQL数据库的性能。以下是TPCC-MYSQL的安装过程及使用方法的详细介绍。 安装 ---- 首先,需要从GitHub上下载TPCC-MYSQL的源代码,并将其解压缩到本地目录中。然后...
标题 "DBD-mysql-4.050.tar.gz" 暗示着这是一个与数据库接口相关的软件包,特别是用于Perl编程语言的DBD(Database Driver for Perl)模块,用于连接和操作MySQL数据库。"4.050"是这个模块的版本号,通常代表着软件...
`go-mysql-canal` 是一个基于 Go 语言实现的 MySQL 数据库 binlog 监听工具,它的主要功能是实时捕获并解析 MySQL 的二进制日志(binlog),然后将这些变化的数据同步到其他系统,如 Elasticsearch。在大数据处理和...
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
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 JDBC驱动,也称为`mysql-connector-java`,是一个实现了Java Database Connectivity (JDBC) API的软件组件,允许Java应用程序通过网络与MySQL服务器交互。`mysql-connector-java-5.1.6`是该驱动的一个...
DBD-mysql-4.010.tar.gz 是一个用于Perl编程语言的数据库接口模块,DBD(Database Driver for Perl)是Perl DBI(Database Independent Interface)的一部分,它提供了与MySQL数据库交互的能力。DBI是Perl中广泛使用...
go-mysql-server是一个SQL引擎,用于解析标准SQL(基于MySQL语法),解析和优化查询。 它提供了简单的界面,以允许自定义表格数据源实现。 go-mysql-server还提供了与MySQL有线协议兼容的服务器实现。 这意味着它...
MySQL ODBC 5.1 Driver 是一个用于连接MySQL数据库的开放数据库连接(ODBC)驱动程序,它允许用户通过标准的ODBC接口访问MySQL数据库,适用于Windows操作系统。这个版本是免安装的,意味着用户可以直接解压使用,...
Flink CDC Connectors 2.2源码修改,适配Flink 1.14.2(MySQL)
flink cdc mysql jar包,2021年最新版