1. 程式人生 > >go語言連線mysql操作

go語言連線mysql操作

一、安裝
在windows下安裝
1、goland(go IDE) 安裝位置:
 D:\package\goland
2、go 安裝位置 :
 D:\package\go
3、GOPATH 位置:
 D:\package\go\workspaceD:\package\go\workspace
 建立三個空資料夾 在GOPATH目錄下建立三個檔案 bin 、src 、pkg
4、GOROOT 位置:
 D:\package\go
5、配置正確的環境變數 在path中配置 GOPATH 和 GOROOT
在linux下安裝
1、解壓安裝包
>tar -zxvf go1.7.6.linux-amd64.tar.gz
2、安裝目錄為:
/opt/go/go
3、工作目錄為:
/opt/go/workspace
4、配置環境變數
>vi ~/.bashrc
export GOROOT=/opt/go/go
export PATH=$GOROOT/bin:$PATH
export GOPATH=/opt/go/workspace
5、重新整理環境變數
source ~/.bashrc
6、執行測試程式test.go
> go run test.go

二、安裝GIT

安裝git,為了用來下載mysql驅動包,此操作在Windows下執行

1、git安裝目錄為:
D:\package\Git
2、給path中配置git的環境變數
3、使用git下載mysql的驅動
在Windows中 ,使用cmd切換到GOPATH的src目錄下 ,執行
>go get github.com/go-sql-driver/MYSQL
1)異常資訊:
    fatal: unable to access 'https://github.com/go-sql-driver/MYSQL/': error setting certificate verify locations:
      CAfile: D:/package/Git/mingw64/libexec/ssl/certs/ca-bundle.crt
      CApath: none
    package github.com/go-sql-driver/MYSQL: exit status 128

2)解決辦法:
    在git安裝目錄下開啟git-bash,執行以下命令即可;
    >  git config --system http.sslverify false
4、匯入驅動包
下載好驅動後可看到在GOPATH目錄下的src檔案下生成github.com這個檔案
在go程式中匯入以下包
    import(
        "database/sql"
        _"github.com/Go-SQL-Driver/MySQL"//就是你下載的檔案地址,如果是自己拷貝的,那麼就寫自己建立的路徑
        "log"
        //"reflect"    //獲取變數型別用
    )

三、編譯程式

在Windows中編譯Windows可執行檔案
1、在windows中,使用cmd切換到工程目錄中
2、使用 go run project_name 即可執行程式;
3、使用 go build projec_name 即可編譯程式;
4、編譯好的程式執行執行即可。
在Windows中編譯linux可執行檔案
1、首先需要設定以下兩個引數:
set GOARCH=amd64
set GOOS=linux
2、編譯程式,使用go build 出來的就是linux 64 位的可執行程式了
3、例如test.go 這個go程式
    執行 go build test.go
    生成編譯好的test檔案
    在linux機器中執行 ./test 即可。

四、連線指令碼

package main
import(
   "database/sql"
   _"github.com/Go-SQL-Driver/MySQL"//就是你下載的檔案地址,如果是自己拷貝的,那麼就寫自己建立的路徑
   "log"
   "fmt"
   "time"
)

func main() {
   //username mysql賬號
   var userName = "test2"
   //password mysql密碼
   var passWord = "abc"
   //ip   mysql資料庫的IP
   var ip = "192.168.136.136"
   //port  mysql資料庫的埠
   var port = "3306"
   // database 需要連線的資料庫名稱
   var database = "test"

   dataSourceName := sourceName2(userName,passWord ,ip ,port ,database)
   //連線示例
   // db,err := sql.Open("mysql","test2:[email protected](192.168.136.136:3306)/test?charset=utf8" )
   conn,err := sql.Open("mysql",dataSourceName )
   if err != nil{
      panic(err.Error())
      log.Println(err)
      return
   }else {
      fmt.Println("connection mysql succcess ! ")
   }
   defer conn.Close()  //只有在前面用了 panic[丟擲異常] 這時defer才能起作用,如果連結資料的時候出問題,他會往err寫資料。defer:延遲,這裡立刻申請了一個關閉sql 連結的草錯,defer 後的方法,或延遲執行。在函式丟擲異常一會被執行


   //產生查詢語句的Statement
   stmt, err := conn.Prepare(`show tables`)
   if err != nil {
      log.Fatal("Prepare failed:", err.Error())
   }
   defer stmt.Close()

   //通過Statement執行查詢
   rows, err := stmt.Query()
   if err != nil {
      log.Fatal("Query failed:", err.Error())
   }

   //建立一個列陣列
   cols, err := rows.Columns()
   var colsdata = make([]interface{}, len(cols))
   for i := 0; i < len(cols); i++ {
      colsdata[i] = new(interface{})
      fmt.Print(cols[i])
      fmt.Print("\t")
   }
   fmt.Println()

   //遍歷每一行
   for rows.Next() {
      rows.Scan(colsdata...) //將查到的資料寫入到這行中
      PrintRow(colsdata)     //列印此行
   }
   defer rows.Close()
}
//連線到mysql
func sourceName2(userName , passWord ,ip , port, database string) string{
   var connection string
   connection =  userName + ":" + passWord +"@tcp(" + ip + ":" + port + ")/"+database+"?charset=utf8"
   return  connection
}
//列印一行記錄,傳入一個行的所有列資訊
func PrintRow(colsdata []interface{}) {
   for _, val := range colsdata {
      switch v := (*(val.(*interface{}))).(type) {
      case nil:
         fmt.Print("NULL")
      case bool:
         if v {
            fmt.Print("True")
         } else {
            fmt.Print("False")
         }
      case []byte:
         fmt.Print(string(v))
      case time.Time:
         fmt.Print(v.Format)
      default:
         fmt.Print(v)
      }
      fmt.Print("\t")
   }
   fmt.Println()
}





相關推薦

go語言連線mysql操作

一、安裝在windows下安裝1、goland(go IDE) 安裝位置: D:\package\goland 2、go 安裝位置 : D:\package\go 3、GOPATH 位置: D:\package\go\workspaceD:\package\go\wor

Go語言連線操作MySQL資料庫

1、下載 github.com包 golang的”database/sql”是操作資料庫時常用的包,這個包定義了一些sql操作的介面,具體的實現還需要不同資料庫的實現,mysql比較優秀的一個驅動是:github.com/go-sql-driver/mysql,在介面、驅動

go語言讀取mysqlgo語言連線mysql,並且查詢出結果

一、需求分析 go語言 連上mysql,並且從mysql中讀取資料 二、實現效果 "D:\Program Files (x86)\JetBrains\Gogland 171.3780.106\

Linux 下c語言連線操作MYSQL

1.安裝mysql 2.安裝mysql.h函式庫 sudo apt-get install libmysqlclient-dev 3. mysql_real_connect() 連線一個mysql伺服器  語法如下 MYSQL *mysql_real_connect

五分鐘beego框架圖文簡介講解03-go語言簡單方式操作MySQL資料庫

安裝go操作MySQL的驅動 go get -u -v github.com/go-sql-driver/mysql go簡單操作MySQL資料庫 導包 import "github.com/go-sql-driver/mysql" 連線資料庫,用sql.Open()方法,open()方法

Linux C語言連線MySQL 增刪改查操作

Linux下想要測試mysql和memcached的效能,因為是伺服器只能通過終端連線,所以考慮用C語言寫測試程式碼。於是研究了把C怎麼連線MySQL以及增刪改查的程式碼。安裝mysql-client或者編譯原始碼安裝mysql後,會有支援C語言寫客戶端的標頭檔案和庫檔案

Go語言slice基本操作

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950

簡單講一下C語言連線MySQL資料庫

1.首先你得將MySQL安裝上   apt-get install mysql-server  (mysql -uroot -p 登陸測試) 2.安裝連結庫   apt-get install libmysqlclient-dev 3.進行資料庫的建立,例如:   cre

註冊模組MVC——連線mysql操作

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 T

Linux程式設計——C語言連線MySQL資料庫

MySQL是Linux系統下廣泛使用的開源免費資料庫,是Linux應用程式資料儲存的首選。許多釋出的Linux版本是自帶MySQL的,但是也有些釋出版本是不帶的(比如我現在用的Ubuntu),那就需要手動安裝。在Synaptic Packet Management中搜索“m

C語言連線mysql簡單查詢例項入門-mysql_init,mysql_real_connect,mysql_query,mysql_close等

一: 分配或初始化與mysql_real_connect()相適應的MYSQL物件。用mysql_init()函式。 MYSQL *mysql_init(MYSQL *mysql) 描述 分配或初始化與mysql_real_connect()相適應的MYSQL物件。如

在Windows/Ubuntu上使用Visual Studio Code作為Go語言編輯器操作步驟

下面以在Windows10上操作為例,在Ubuntu上操作步驟與windows一致:1. 從 https://code.visualstudio.com/  下載windows上的最新發布版本1.21.1,即VSCodeSetup-x64-1.21.1.exe;2. 以管理員

C語言連線MySQL資料庫

1 配置 win7 32bit,mysql5.5,vs2008 vc路徑設定,工具 -> 選項 -> 專案和解決方案 -> VC++ 路徑,Platform選擇Win32,然後 Include files中新增 D:\Program F

golang連線mysql操作及動態連線池設定

golang本身沒有提供連線mysql的驅動,但是定義了標準介面供第三方開發驅動。這裡連線mysql可以使用第三方庫,第三方庫推薦使用https://github.com/Go-SQL-Driver/MySQL這個驅動,更新維護都比較好。下面演示下具體的使用,完

使用go語言操作mysql資料庫

1.下載並匯入資料庫驅動包 官方不提供實現,先下載第三方的實現,點選這裡檢視各種各樣的實現版本。 這裡選擇了Go-MySQL-Driver這個實現。地址是:https://github.com/go-sql-driver/mysql/。 然後按照裡面的說明下載驅動包: $ go get

Go語言操作Redis、MySQL

文章出處:http://www.cnblogs.com/wdliu/p/9330278.html 一、redis 簡介 redis(REmote DIctionary Server)是一個由Salvatore Sanfilippo寫key-value儲存系統,它由C語言編寫、遵守BSD協

Go語言開發(十八)、Go語言MySQL數據庫操作

har fail sid 內部 分析 face ack rgs 釋放 Go語言開發(十八)、Go語言MySQL數據庫操作 一、MySQL數據庫驅動 1、MySQL數據庫驅動簡介 Go語言官方沒有實現MySQL數據庫驅動,常用的開源MySQL數據庫驅動實現如下:(1)Go M

Go語言連線資料庫SQLite、MySQL、Oracle

本文目錄 說明: go語言連線資料庫不像Java那麼方便,本文分別介紹了連線三種典型的資料庫的驅動以及連線方法:小型,SQLite;中型,MySQL;大型,Oracle. 1.Go連線SQLit

go語言操作mysql範例(增刪查改)

    go官方僅提供了database package,database package下有兩個包sql,sql/driver。這兩個包用來定義操作資料庫的介面,這就保證了無論使用哪種資料庫,他們的操作方式都是相同的。     但go官方並沒有提供連線資料庫的drive

go語言筆記——切片函數常見操作,增刪改查和搜索、排序

通過 學習 strings 完整 官方文檔 二分 func fun 必須 7.6.6 搜索及排序切片和數組 標準庫提供了 sort 包來實現常見的搜索和排序操作。您可以使用 sort 包中的函數 func Ints(a []int) 來實現對 int 類型的切片排序。例如