Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menggunakan TLS 1.2 dengan pemacu MySql Go?

Bagaimana untuk menggunakan TLS 1.2 dengan pemacu MySql Go?

WBOY
WBOYke hadapan
2024-02-10 09:40:09739semak imbas

如何将 TLS 1.2 与 MySql Go 驱动程序一起使用?

editor php Yuzi akan memperkenalkan anda cara menggunakan TLS 1.2 dengan pemacu MySQL Go dalam artikel ini. TLS 1.2 ialah protokol pengangkutan selamat yang digunakan untuk melindungi keselamatan komunikasi rangkaian. Apabila menggunakan pemacu MySQL Go untuk menyambung ke pangkalan data, mendayakan TLS 1.2 boleh meningkatkan keselamatan penghantaran data. Artikel ini akan memperincikan cara mengkonfigurasi dan menggunakan TLS 1.2 dengan pemacu MySQL Go untuk mewujudkan sambungan pangkalan data yang selamat. Mengikuti panduan artikel ini, anda akan dapat menggunakan TLS 1.2 dengan mudah dengan pemacu MySQL Go untuk melindungi data dan komunikasi anda.

Kandungan soalan

Kami perlu menggunakan tls1.2 untuk menyambung ke pelayan mysql kami. Dalam aplikasi java kami, kami menggunakan url jdbc berikut -

jdbc:mysql://xxxx-001-dev.cluster-xx-2.rds.amazonaws.com/bats?**enabledtlsprotocols=tlsv1.2**

Saya tidak dapat mencapai konfigurasi yang serupa apabila menyambung ke mysql dalam aplikasi go kami -

cfg1 := mysql.config{
        user:                 "admin",
        passwd:               "xxxxxxx",
        net:                  "tcp",
        addr:                 "xxxx-001-dev.cluster-xx-2.rds.amazonaws.com:3306",
        dbname:               "xxxx",
        allownativepasswords: true,
    }

    sql.open("mysql", cfg1.formatdsn())

Saya cuba menambah pernyataan berikut. Tetapi ia tidak membantu, ia membuang ralat berikut -

// enabledtlsprotocolstlsv1.2
    cfg1 := mysql.config{
        user:                 "admin",
        passwd:               "xxxxxx",
        net:                  "tcp",
        addr:                 "xxxx-001-dev.cluster-xx-2.rds.amazonaws.com:3306",
        dbname:               "xxxx",
        allownativepasswords: true,
    }

    cfg1.tls.minversion = tls.versiontls12
    cfg1.tls.maxversion = tls.versiontls12

    sql.open("mysql", cfg1.formatdsn())

Ralat-

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x1 addr=0xf8 pc=0x64ac21]

goroutine 1 [running]:
main.main()
        C:/cmb-mmt/chp-schema-validation/main.go:28 +0x61

Kami menggunakan mysql versi 5.7.12

Penyelesaian

Kod di bawah menyelesaikan masalah ini. dan saya berjaya menyambung ke mysql.

cfg1 := mysql.Config{
        User:                 cfg.Db.Dev.User,
        Passwd:               cfg.Db.Dev.Pass,
        Net:                  "tcp",
        Addr:                 "cxx-cxxx-auroramysql-001-dev.xxxxxxxxx.us-west-2.rds.amazonaws.com:3306",
        DBName:               "xxxx",
        AllowNativePasswords: true,
        TLSConfig:            "skip-verify",
        TLS:                  &tls.Config{MinVersion: tls.VersionTLS12, MaxVersion: tls.VersionTLS12},
    }

Atas ialah kandungan terperinci Bagaimana untuk menggunakan TLS 1.2 dengan pemacu MySql Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam