最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go 備份數(shù)據(jù)庫(kù)表的實(shí)現(xiàn)示例

 更新時(shí)間:2026年06月03日 08:48:20   作者:hujun8610  
備份mysql數(shù)據(jù)庫(kù)的方法有很多,常用的可以登錄mysql活著使用mysqldump命令進(jìn)行備份,本文提供golang的方式來(lái)備份mysql數(shù)據(jù)庫(kù),下面就來(lái)詳細(xì)的介紹一下

簡(jiǎn)介

常見(jiàn)數(shù)據(jù)庫(kù)備份方法

  1. 登錄mysql數(shù)據(jù)庫(kù),執(zhí)行mysql命令進(jìn)行備份。
SELECT * FROM account_auth INTO OUTFILE 'yourpath' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'

以上命令將查詢結(jié)果導(dǎo)出為csv文件。

  1. 使用mysqldump命令備份指定的表
mysqldump -h host -Pyourport -u yourdatabase -p'youpassword' --fields-terminated-by=',' --fields-enclosed-by='"' --fields-escaped-by='\\' --tab=/yourpath database table;

以上兩種方式要求登錄數(shù)據(jù)庫(kù)的賬號(hào)擁有數(shù)據(jù)導(dǎo)出權(quán)限,否則導(dǎo)出會(huì)失敗。

go實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)導(dǎo)出

package database  
import (  
"fmt"  
"os"  
"strings"  
)  
//var log = logger.GetLogger()  
func Backup(sql string, backupFile string) {  
log.WithField("sql", sql).WithField("backupFilename", backupFile).Info("begin to backup sql")  
if !strings.Contains(sql, "limit") {  
if strings.Contains(sql, ";") {  
strings.Replace(sql, ";", " ", -1)  
}  
sql = fmt.Sprintf("%s %s", sql, "limit 10;")  
}  
sqlDB, err := GetDB().DB()  
defer func() {  
err = CloseDB()  
if err != nil {  
log.Fatalf("close database failed %s", dsn)  
}  
}()  
if err != nil {  
log.Fatalf("get sql db failed")  
}  
rows, err := sqlDB.Query(sql)  
if err != nil {  
log.Fatalf("query database failed", err)  
}  
defer rows.Close()  
columns, _ := rows.Columns()
//values用于存儲(chǔ)數(shù)據(jù)庫(kù)的查詢結(jié)果
values := make([]interface{}, len(columns))
//valuePtrs用于存儲(chǔ)scan指針
valuePtrs := make([]interface{}, len(columns))  
for i := range columns {  
valuePtrs[i] = &values[i]  
}  
var content string  
for rows.Next() {  
//columns, _ := rows.Columns()  
err := rows.Scan(valuePtrs...)  
if err != nil {  
log.Fatalf("get data from rows failed ", err)  
}  
rowData := make([]string, len(columns))  
for i, val := range values {  
if val == nil {  
rowData[i] = "NULL"  
} else {  
//將查詢結(jié)果轉(zhuǎn)成string,否則輸出為asicc碼
rowData[i] = fmt.Sprintf("%s", val)  
}  
}  
result := strings.Join(rowData, ",")  
result += "\n"  
log.Info("the row result: %s", result)  
content += result  
}  
err = os.WriteFile(backupFile, []byte(content), 0644)  
if err != nil {  
log.Fatalf("backup file failed ", backupFile)  
}  
}

到此這篇關(guān)于Go 備份數(shù)據(jù)庫(kù)表的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Go 備份數(shù)據(jù)庫(kù)表內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Gin+Gorm實(shí)現(xiàn)CRUD的實(shí)戰(zhàn)

    Gin+Gorm實(shí)現(xiàn)CRUD的實(shí)戰(zhàn)

    本文主要介紹了Gin+Gorm實(shí)現(xiàn)CRUD的實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • GO語(yǔ)言中的方法值和方法表達(dá)式的使用方法詳解

    GO語(yǔ)言中的方法值和方法表達(dá)式的使用方法詳解

    這篇文章主要介紹了GO的方法值和方法表達(dá)式的使用方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Golang在整潔架構(gòu)基礎(chǔ)上實(shí)現(xiàn)事務(wù)操作

    Golang在整潔架構(gòu)基礎(chǔ)上實(shí)現(xiàn)事務(wù)操作

    這篇文章在 go-kratos 官方的 layout 項(xiàng)目的整潔架構(gòu)基礎(chǔ)上,實(shí)現(xiàn)優(yōu)雅的數(shù)據(jù)庫(kù)事務(wù)操作,需要的朋友可以參考下
    2024-08-08
  • Go語(yǔ)言自定義包構(gòu)建自己的編程工具庫(kù)

    Go語(yǔ)言自定義包構(gòu)建自己的編程工具庫(kù)

    Go 語(yǔ)言的強(qiáng)大不僅體現(xiàn)在其內(nèi)置功能上,還在于其支持自定義包,這為開(kāi)發(fā)者提供了極大的靈活性和可擴(kuò)展性,本文將深入介紹如何創(chuàng)建、使用和管理自定義包,探索 Go 語(yǔ)言包的奧秘,打造屬于你的編程工具庫(kù)
    2023-11-11
  • go編程中g(shù)o-sql-driver的離奇bug解決記錄分析

    go編程中g(shù)o-sql-driver的離奇bug解決記錄分析

    這篇文章主要為大家介紹了go編程中g(shù)o-sql-driver的離奇bug解決記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Go?分布式鏈路追蹤實(shí)現(xiàn)原理解析

    Go?分布式鏈路追蹤實(shí)現(xiàn)原理解析

    分布式鏈路追蹤作為解決分布式應(yīng)用可觀測(cè)問(wèn)題的重要技術(shù),愈發(fā)成為分布式應(yīng)用不可缺少的基礎(chǔ)設(shè)施,本文將詳細(xì)介紹分布式鏈路的核心概念、架構(gòu)原理和相關(guān)開(kāi)源標(biāo)準(zhǔn)協(xié)議,并分享我們?cè)趯?shí)現(xiàn)無(wú)侵入 Go 采集 Sdk 方面的一些實(shí)踐,需要的朋友可以參考下
    2022-06-06
  • Go語(yǔ)言異常處理(Panic和recovering)用法詳解

    Go語(yǔ)言異常處理(Panic和recovering)用法詳解

    異常處理是程序健壯性的關(guān)鍵,往往開(kāi)發(fā)人員的開(kāi)發(fā)經(jīng)驗(yàn)的多少?gòu)漠惓2糠痔幚砩暇湍艿玫襟w現(xiàn)。Go語(yǔ)言中沒(méi)有Try?Catch?Exception機(jī)制,但是提供了panic-and-recover機(jī)制,本文就來(lái)詳細(xì)講講他們的用法
    2022-07-07
  • golang設(shè)置http response響應(yīng)頭與填坑記錄

    golang設(shè)置http response響應(yīng)頭與填坑記錄

    這篇文章主要給大家介紹了關(guān)于golang設(shè)置http response響應(yīng)頭與填坑記錄的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • GoLang函數(shù)與面向接口編程全面分析講解

    GoLang函數(shù)與面向接口編程全面分析講解

    這篇文章主要介紹了GoLang函數(shù)與面向接口編程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • golang基礎(chǔ)之字符串與int、int64類(lèi)型互相轉(zhuǎn)換

    golang基礎(chǔ)之字符串與int、int64類(lèi)型互相轉(zhuǎn)換

    這篇文章主要給大家介紹了關(guān)于golang基礎(chǔ)之字符串與int、int64類(lèi)型互相轉(zhuǎn)換的相關(guān)資料,在Go語(yǔ)言中string轉(zhuǎn)int是一項(xiàng)常見(jiàn)的操作,需要的朋友可以參考下
    2023-07-07

最新評(píng)論

北安市| 怀来县| 长海县| 宿松县| 宜宾市| 玉林市| 扶绥县| 招远市| 普陀区| 交口县| 垫江县| 周口市| 克什克腾旗| 长乐市| 常山县| 阿瓦提县| 温泉县| 平利县| 拉孜县| 佛山市| 和龙市| 宁明县| 怀来县| 南召县| 额敏县| 辽阳县| 华容县| 古浪县| 荥阳市| 泸西县| 南乐县| 石阡县| 东乌| 合江县| 蛟河市| 星子县| 皋兰县| 奉贤区| 阳信县| 蓬安县| 日喀则市|