centos

CentOS上Golang如何连接数据库

小樊
37
2025-04-22 16:43:04
栏目: 编程语言

在CentOS上使用Golang连接数据库,你需要遵循以下步骤:

  1. 安装Golang:如果你还没有安装Golang,请访问官方网站(https://golang.org/dl/)下载并安装适用于CentOS的Golang版本。

  2. 安装数据库驱动:根据你要连接的数据库类型,安装相应的Golang驱动。以下是一些常见数据库的驱动安装方法:

    • MySQL: 使用go get命令安装go-sql-driver/mysql驱动:

      go get -u github.com/go-sql-driver/mysql
      
    • PostgreSQL: 使用go get命令安装pq驱动:

      go get -u github.com/lib/pq
      
    • MongoDB: 使用go get命令安装go.mongodb.org/mongo-driver驱动:

      go get -u go.mongodb.org/mongo-driver/mongo
      
    • SQLite: 使用go get命令安装modernc.org/sqlite驱动:

      go get -u modernc.org/sqlite
      
  3. 编写Golang代码:在你的Golang项目中,编写代码以连接到数据库。以下是一些示例:

    • MySQL:

      package main
      
      import (
          "database/sql"
          "fmt"
          _ "github.com/go-sql-driver/mysql"
      )
      
      func main() {
          dsn := "username:password@tcp(localhost:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
          db, err := sql.Open("mysql", dsn)
          if err != nil {
              panic(err)
          }
          defer db.Close()
      
          err = db.Ping()
          if err != nil {
              panic(err)
          }
      
          fmt.Println("Connected to the MySQL database!")
      }
      
    • PostgreSQL:

      package main
      
      import (
          "database/sql"
          "fmt"
          _ "github.com/lib/pq"
      )
      
      func main() {
          connStr := "user=username dbname=dbname password=password sslmode=disable"
          db, err := sql.Open("postgres", connStr)
          if err != nil {
              panic(err)
          }
          defer db.Close()
      
          err = db.Ping()
          if err != nil {
              panic(err)
          }
      
          fmt.Println("Connected to the PostgreSQL database!")
      }
      
    • MongoDB:

      package main
      
      import (
          "context"
          "fmt"
          "go.mongodb.org/mongo-driver/mongo"
          "go.mongodb.org/mongo-driver/mongo/options"
          "time"
      )
      
      func main() {
          clientOptions := options.Client().ApplyURI("mongodb://username:password@localhost:27017")
          client, err := mongo.Connect(context.Background(), clientOptions)
          if err != nil {
              panic(err)
          }
      
          err = client.Ping(context.Background(), nil)
          if err != nil {
              panic(err)
          }
      
          fmt.Println("Connected to the MongoDB database!")
      }
      
    • SQLite:

      package main
      
      import (
          "database/sql"
          "fmt"
          _ "modernc.org/sqlite"
      )
      
      func main() {
          db, err := sql.Open("sqlite3", "./test.db")
          if err != nil {
              panic(err)
          }
          defer db.Close()
      
          err = db.Ping()
          if err != nil {
              panic(err)
          }
      
          fmt.Println("Connected to the SQLite database!")
      }
      
  4. 运行你的Golang程序:使用go run命令运行你的程序,例如:

    go run main.go
    

如果一切正常,你应该会看到类似于以下的输出,表示已成功连接到数据库:

Connected to the MySQL database!

请注意,你需要根据实际情况替换示例代码中的数据库连接信息(如用户名、密码、主机名和数据库名)。

0
看了该问题的人还看了