debian

Golang在Debian上的数据库连接方法

小樊
39
2025-03-25 05:20:13
栏目: 编程语言

在Debian上使用Golang连接数据库,通常是通过使用第三方库来实现的。以下是一些常见的数据库及其对应的Golang连接方法:

1. MySQL

对于MySQL数据库,可以使用go-sql-driver/mysql库。

安装库:

go get -u github.com/go-sql-driver/mysql

示例代码:

package main

import (
	"database/sql"
	"fmt"
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	// 数据库连接字符串
	dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
	db, err := sql.Open("mysql", dsn)
	if err != nil {
		panic(err.Error())
	}
	defer db.Close()

	// 测试连接
	err = db.Ping()
	if err != nil {
		panic(err.Error())
	}

	fmt.Println("Connected to MySQL!")
}

2. PostgreSQL

对于PostgreSQL数据库,可以使用lib/pq库。

安装库:

go get -u github.com/lib/pq

示例代码:

package main

import (
	"database/sql"
	"fmt"
	_ "github.com/lib/pq"
)

func main() {
	// 数据库连接字符串
	connStr := "user=youruser dbname=yourdb password=yourpassword sslmode=disable"
	db, err := sql.Open("postgres", connStr)
	if err != nil {
		panic(err.Error())
	}
	defer db.Close()

	// 测试连接
	err = db.Ping()
	if err != nil {
		panic(err.Error())
	}

	fmt.Println("Connected to PostgreSQL!")
}

3. SQLite

对于SQLite数据库,可以使用modernc.org/sqlite库。

安装库:

go get -u modernc.org/sqlite

示例代码:

package main

import (
	"database/sql"
	"fmt"
	_ "modernc.org/sqlite"
)

func main() {
	// 数据库文件路径
	dbPath := "./yourdb.sqlite"
	db, err := sql.Open("sqlite3", dbPath)
	if err != nil {
		panic(err.Error())
	}
	defer db.Close()

	// 创建表(如果不存在)
	_, err = db.Exec(`CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)`)
	if err != nil {
		panic(err.Error())
	}

	fmt.Println("Connected to SQLite!")
}

4. MongoDB

对于MongoDB数据库,可以使用go.mongodb.org/mongo-driver/mongo库。

安装库:

go get -u go.mongodb.org/mongo-driver/mongo
go get -u go.mongodb.org/mongo-driver/mongo/options

示例代码:

package main

import (
	"context"
	"fmt"
	"go.mongodb.org/mongo-driver/bson"
	"go.mongodb.org/mongo-driver/mongo"
	"go.mongodb.org/mongo-driver/mongo/options"
	"log"
)

func main() {
	// MongoDB连接字符串
	clientOptions := options.Client().ApplyURI("mongodb://localhost:27017")
	client, err := mongo.Connect(context.TODO(), clientOptions)
	if err != nil {
		log.Fatal(err)
	}
	defer client.Disconnect(context.TODO())

	// 测试连接
	err = client.Ping(context.TODO(), nil)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println("Connected to MongoDB!")
}

总结

以上是几种常见数据库在Debian上使用Golang连接的示例。根据你的具体需求选择合适的数据库和对应的库,并按照示例代码进行配置和连接测试。

0
看了该问题的人还看了