今天要写个工具就想顺便学下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-elasticsearch` 是一个强大的数据同步工具,它结合了 Go 语言的性能优势和 MySQL 与 Elasticsearch 的数据处理能力,为需要实时数据同步的项目提供了有效支持。通过深入了解和使用这个工具,你...
go-mysql-transfer是一款MySQL数据库实时增量同步工具。 能够监听MySQL二进制日志(Binlog)的变动,将变更内容形成指定格式的消息,实时发送到接收端。从而在数据库和接收端之间形成一个高性能、低延迟的增量数据...
`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.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的主要特点和优势: 1. **跨平台性**:...
日志安全审计插件,原官网已经无法下载 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】是一个针对Go语言的开源MySQL驱动程序,旨在提供高效、GC(垃圾收集)优化的数据连接方案。这个项目由PubNative团队开发,目的是为Go开发者提供更好的MySQL数据库访问性能...
在本文中,我们将深入探讨`go-sql-driver.zip`中包含的`go-sql-driver`,这是一个用于Go语言(Golang)的MySQL数据库驱动。这个驱动程序使得在Go应用程序中与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。在大数据处理和...
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-...
首先,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中广泛使用...
MySQL ODBC 5.1 Driver 是一个用于连接MySQL数据库的开放数据库连接(ODBC)驱动程序,它允许用户通过标准的ODBC接口访问MySQL数据库,适用于Windows操作系统。这个版本是免安装的,意味着用户可以直接解压使用,...
go-mysql-server是一个SQL引擎,用于解析标准SQL(基于MySQL语法),解析和优化查询。 它提供了简单的界面,以允许自定义表格数据源实现。 go-mysql-server还提供了与MySQL有线协议兼容的服务器实现。 这意味着它...
go-mysql-mongodb是一项将MySQL数据自动同步到MongoDB的服务。 它首先使用mysqldump来获取原始数据,然后与binlog增量同步数据。 安装 安装Go( )并设置您的 go get github.com/WangXiangUSTC/go-mysql-mongodb ...
DBD-mysql-4.031 是DBD::mysql的一个版本,它允许Perl程序员使用Perl语言来编写MySQL数据库的应用程序。该模块提供了连接、查询、事务处理、结果集处理等基本功能,同时也支持更高级的特性,如预编译的语句、存储...
Connector/Net is a fully-managed ADO.NET driver for MySQL. MySql 的 ADO.NET 驱动 版本 6.3.5.0 适用于 .net 4.0