温馨提示×

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

小樊
77
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