gorm 連線mysql 連線到資料庫

2021-10-21 08:38:07 字數 1973 閱讀 4462

# 連線到資料庫

gorm 官方支援的資料庫型別有: mysql, postgresql, sqlite, sql server

## mysql

```go

import (

"gorm.io/driver/mysql"

"gorm.io/gorm"

func main() )

**注意:**

想要支援完整的 utf-8 編碼,您需要將 `charset=utf8` 更改為 `charset=utf8mb4`。 檢視 [此文章]( 獲取詳情

mysql 驅動程式提供了 [一些高階配置]( 可以在初始化過程中使用,例如:

db, err := gorm.open(mysql.new(mysql.config), &gorm.config{})

## postgresql

```go

import (

"gorm.io/driver/postgres"

"gorm.io/gorm"

dsn := "user=gorm password=gorm dbname=gorm port=9920 sslmode=disable timezone=asia/shanghai"

db, err := gorm.open(postgres.open(dsn), &gorm.config{})

我們使用 [pgx]( 作為 postgres 的 database/sql 驅動器,預設情況下,它會啟用 prepared statement 快取,你可以這樣禁用它:

**注意:** 您也可以使用 `file::memory:?cache=shared` 替代檔案路徑。 這會告訴 sqlite 在系統記憶體中使用乙個臨時資料庫。 (檢視 [sqlite 文件]( 獲取詳情)

microsoft 為 go (gorm) 使用 sql server 提供了 [乙份指南](

## 連線池

gorm 使用 [database/sql]( 來維護連線池

sqldb, err := db.db()

// setmaxidleconns 設定空閒連線池中連線的最大數量

sqldb.setmaxigleconns(10)

// setmaxopenconns 設定開啟資料庫連線的最大數量

sqldb.setmaxopenconns(100)

// setconnmaxlifetime 設定了連線可復用的最大時間

sqldb.setconnmaxlifetime(time.hour)

檢視 [通用介面](../教程/generic_inte***ce.md) 獲取詳情。

## 不支援的資料庫

有些資料庫可能相容 `mysql`、`postgres` 的方言,在這種情況下,你可以直接使用這些資料庫的方言。

遠端連線到mysql

1 進入mysql,建立乙個新使用者xuys 格式 grant 許可權 on 資料庫名.表名 使用者 登入主機 identified by 使用者密碼 grant select,update,insert,delete on to xuys 192.168.88.234 identified by ...

java專案無法連線到mysql

背景介紹 1.用來做非洲網路加速測試的專案uc,非常簡單,就一些 js css,還有乙個讀資料庫大表的應用,這個表有十幾個字段,57000行,90 m大 2.開發之前在win 2008的tomcat上跑的很正常 3.拿到我的centos 5.8的tomcat上,跑不起來,資料庫乙個連線都沒有,已經排...

erlang連線到mysql資料庫

erlang連線到mysql資料庫 一,rlang mysql driver svn checkout mysql 2.對src下面的所有原始碼進行編譯 erlc erl 3.然後在mysql 下面建立ebin,並將src 下面的所有 beam拷貝到ebin 下面 4.將mysql整個資料夾拷貝到e...