在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连接的示例。根据你的具体需求选择合适的数据库和对应的库,并按照示例代码进行配置和连接测试。