Golang 操作mysql使用举例---连接本地数据库
连接数据库的方式有两种:TCP和Unix域socket。
本文使用Unix domain sockets连接数据库。关于TCP连接数据库可以参考Go 操作mysql使用举例
下面例子中,演示了使用show命令查看数据库连接信息的过程。
mysql> show processlist;
+----+------+----------------------+------+---------+------+----------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+----------------------+------+---------+------+----------+------------------+
| 26 | root | 172.24.232.66:7868 | sys | Query | 0 | starting | show processlist |
+----+------+----------------------+------+---------+------+----------+------------------+
1 row in set (0.00 sec)
代码如下:
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
type DBConnectionInfo struct {
ID []byte
User string
Host string
DB []byte
Cmd string
Time []byte
State string
Info []byte
}
func(f *DBConnectionInfo) String() string{
return fmt.Sprintf("ID:%s, User:%s, Host:%s, DB:%s, Cmd:%s, Time:%s, State:%s, Info:%s", string(f.ID), f.User, f.Host, string(f.DB), f.Cmd, string(f.Time), f.State, string(f.Info))
}
const (
mysqlShowProcessList="show processlist"
)
var DB *sql.DB
//var dataBase = "root:Aa123456@unix(/tmp/mysql.sock)/mysql"
var dataBase = "root:Aa123456@unix(/tmp/mysql.sock)/"
func Init() {
var err error
DB, err = sql.Open("mysql", dataBase)
if err != nil {
log.Fatalln("open db fail:", err)
}
err = DB.Ping()
if err != nil {
log.Fatalln("ping db fail:", err)
}
}
func main() {
Init()
query()
}
func query() {
rows, err := DB.Query(mysqlShowProcessList)
if err != nil {
log.Println("query failed:", err)
return
}
defer rows.Close()
for rows.Next(){
data := &DBConnectionInfo{}
if err := rows.Scan(&data.ID, &data.User, &data.Host, &data.DB, &data.Cmd, &data.Time, &data.State, &data.Info); err != nil {
log.Println("Scan failed:", err)
}
fmt.Println("data:", data)
}
}
output:
data: ID:145, User:root, Host:localhost, DB:, Cmd:Sleep, Time:632, State:, Info:
data: ID:172, User:root, Host:localhost, DB:, Cmd:Query, Time:0, State:starting, Info:show processlist
参考
https://blog.csdn.net/lanyang123456/article/details/79831537
https://www.cnblogs.com/hanyouchun/p/6708037.html
Golang 操作mysql使用举例---连接本地数据库的更多相关文章
- navicat for mysql连接本地数据库
navicat for mysql连接本地数据库 打算使用navicat连接本地数据库,连接的时候,一直连接不上.然后猜想是不是本地数据库没有设置好.输入mysql,出错内容:access denie ...
- 错误解决记录------------mysql连接本地数据库显示"can't get hostname for your address"
mysql连接本地数据库遇到 can't get hostname for your address 不明原因的本地mysql数据库连接不上,总是显示can't get hostname for yo ...
- MySQL 连接本地数据库、远程数据库命令
一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:/>mysql -h localhost -u root -p123 二. ...
- golang操作mysql数据库
golang操作mysql数据库 代码: mysql的增.删.改.查 package main import ( "database/sql" "fmt" &q ...
- MySQL连接本地数据库时报1045错误的解决方法
navicat for MySQL 连接本地数据库出现1045错误 如下图: 说明连接mysql时数据库密码错误,需要修改密码后才可解决问题: 解决步骤如下: .首先打开命令行:开始->运行 ...
- navicat for MySQL连接本地数据库时报1045错误的解决方法
navicat for MySQL 连接本地数据库出现1045错误 如下图: 说明连接mysql时数据库密码错误,需要修改密码后才可解决问题: 解决步骤如下: 1.首先打开命令行:开始->运行- ...
- [转帖]golang操作mysql使用总结
golang操作mysql使用总结 https://www.cnblogs.com/hanyouchun/ 讲解的很详细~ 前言 Golang 提供了database/sql包用于对SQL数据库的访问 ...
- Oracle 11g安装和PL/SQL连接完全解读(连接本地数据库)
Oracle安装是很多新手都烦恼的事情,各种奇怪的错误,并且还无从下手解决.我也隔了两年没有用Oracle了,昨天安装了一下,出现很多问题,也很苦恼.现在将安装过程详细记录下来,一来方便自己下次安装, ...
- 使用node中mysql模块连接本地数据库
连接数据库的方法迄今为止学了三种: cmd方式.可视化工具,今天记第三种----node端连接数据库. 一:mysql模块介绍与下载 1.mysql模块是node端专门连接数据库的第三方模块 2.下载 ...
随机推荐
- django面试八
1. 对Django的认识? #1.Django是走大而全的方向,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构.以及全功能的管理后台. #2.Dja ...
- Web安全测试解决方案
Web安全测试解决方案 介绍常见的Web安全风险,Web安全测试方法.测试基本理论和测试过程中的工具引入
- [Data Structure] An Algorithm for Matching Delimiters
An important task when processing arithmetic expressions is to mach delimiters. We can use Stack to ...
- Unity 3D动态修改Shader状态,使物体透明等等
Unity动态改Shader状态透明 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...
- Unity 3D-Canvas画布的三种模式
Unity开发VR之Vuforia 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...
- 小米4c刷LineageOS
注意,本文仅限于小米4c,其他手机仅可参考步骤.如下rom,su,gapps包的下载都是小米4c的,深刷miflash也仅适用于小米手机.准备工作:请自行备份好手机内的个人资料. 电脑环境,usb驱动 ...
- 铁三测试题——权限、你是管理员吗?——WP
权限 [题目描述]:你是管理员吗? [解题链接]:http://ctf4.shiyanbar.com/web/root/index.php 首先看题,提到“权限”,“管理员”,这就是说涉及到管理员的账 ...
- 如何将备份的oracle数据库还原到指定用户下。
上一文章 oracle11g数据库--创建表空间,创建用户,用户授权并指定表空间.我们已经建好了指定的新用户pdmis. 接下来我们需要将备份好的数据库,还原至新用户pdmis下. 想要还原,我们需要 ...
- LeetCode - Cut Off Trees for Golf Event
You are asked to cut off trees in a forest for a golf event. The forest is represented as a non-nega ...
- 【BZOJ2820】ygy的gcd
不知道为什么不想写总结,只是(因为是用别人的权限号交的所以)屯一个代码 #include<iostream> #include<cstdio> #include<algo ...