Beri tahu kami apa yang harus terjadi dan apa yang terjadi
mysql5.7 plugin auth tidak dikenal
// version go1.10.2 darwin/amd64
db, err := sql.Open("mysql", "admin:admin@tcp(127.0.0.1:9696)/test")
if err != nil {
fmt.Println("failed to open database:", err.Error())
return
}
defer db.Close()
rows, err := db.Query("SELECT id,str FROM test_shard_hash")
if err != nil {
fmt.Println("fetech data failed:", err.Error())
return
}
defer rows.Close()
for rows.Next() {
var id int
var str string
rows.Scan(&id, &str)
fmt.Println("uid:", id, "name:", str)
}
[mysql] 2018/06/06 22:15:07 auth.go:293: unknown auth plugin:
[mysql] 2018/06/06 22:15:07 driver.go:120: could not use requested auth plugin '': this authentication plugin is not supported
Versi driver (atau git SHA): origin / master
Go versi: go1.10.2 darwin / amd64
Versi server
OS Server: macOS 10.13.4 (17E202)
Bagian berikut juga untuk alasan yang bagus di template masalah:
### Configuration
*Driver version (or git SHA):*
*Go version:* run `go version` in your console
*Server version:* E.g. MySQL 5.6, MariaDB 10.0.20
*Server OS:* E.g. Debian 8.1 (Jessie), Windows 10
Dugaan saya adalah bahwa cabang master Anda bukanlah versi terbaru. Harap periksa versi spesifik dengan git rev-parse HEAD
dan sinkronkan dan coba lagi dengan versi yang lebih baru jika perlu.
halo, saya juga punya masalah ini. Apakah Anda sudah menyelesaikannya?
tidak
Apakah cabang ini memperbaiki masalah Anda? https://github.com/go-sql-driver/mysql/tree/empty_auth
Bagaimanapun, alangkah baiknya jika Anda dapat memasukkan print(data)
setelah blok ini https://github.com/go-sql-driver/mysql/blob/d523deb1b23d913de5bdada721a6071e71283618/packets.go#L157 -L167 dan di sini https://github.com/go-sql-driver/mysql/blob/d523deb1b23d913de5bdada721a6071e71283618/packets.go#L469 -L474 dan kirimkan paket dump yang dihasilkan sehingga kami dapat menggunakannya untuk membuat uji regresi.
@ gocuntian apakah Anda menyelesaikan masalah?
Saya memiliki pertanyaan yang sama, pertanyaan saya adalah server saya mengirim paket init tanpa cara auth
mendapatkan kode sumber:
auth.go: 240, di func auth (), tambahkan kode:
jika plugin == "" {
plugin = "mysql_native_password"
}
masalah saya telah terpecahkan
Saya mendapat peringatan yang sama saat menghubungkan ke MySQL 5.1.
auth.go:293: unknown auth plugin:
driver.go:120: could not use requested auth plugin '': this authentication plugin is not supported
Cabang https://github.com/go-sql-driver/mysql/tree/empty_auth memperbaikinya. Apakah Anda memiliki rencana untuk menggabungkan cabang tersebut? @bayu_julianto
Saya memiliki masalah yang sama.
driver.go:113: could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
Gagal pada master (go get)
Gagal dengan v1.4.0
Bekerja dengan v1.3.0
Saya dapat memberikan info lebih lanjut jika Anda membutuhkannya. Atau apakah menurut Anda itu masalah lain dan saya harus membuat edisi baru?
Dibuka kembali. Lihat # 828 dan # 835 (PR untuk empty_auth
cabang)
Saya hanya ingin menggarisbawahi bahwa tampaknya ada dua masalah di sini dengan gejala yang sangat mirip.
Perbaikan di # 835 tampaknya memperbaiki kasus di mana ada nama plugin autentikasi kosong, tetapi itu tidak menyelesaikan masalah mysql_native_password
(lihat https://github.com/ go-sql-driver / mysql / issues / 828 # Issuecomment-401856689 untuk informasi selengkapnya).
Mungkin itu masalah yang berbeda, tetapi saya menduga diperlukan perbaikan yang lebih luas daripada yang diusulkan di # 835.
@ kwoodhouse93 Dapatkah Anda mengirimkan log paket kepada kami, misalnya seperti yang dijelaskan di sini: https://github.com/go-sql-driver/mysql/issues/815#issuecomment -396244978 (sebaiknya menggunakan empty_auth
branch / # 835)?
Dan juga coba tambahkan &allowNativaPasswords=true
ke DSN Anda, untuk berjaga-jaga (seharusnya true
secara default)
Menggunakan empty_auth
branch, saya menambahkan print(data)
di tempat yang disebutkan, dan hasilnya adalah:
[74/4092]0xc42036c004[mysql] 2018/07/13 11:49:18 driver.go:123: could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
[74/4092]0xc420371004[mysql] 2018/07/13 11:49:26 driver.go:123: could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
...
Itu diulang 12 kali sebelum berhenti mencoba lagi, masing-masing dengan alamat yang sedikit berbeda.
Mengenai DSN saya, saya menggunakan mysql.Config
dengan FormatDSN()
. AllowNativePasswords
dihilangkan saat membuat Config
struct, jadi saya menambahkan AllowNativePasswords: true,
. Itu sedikit mengubah perilakunya, tetapi pada akhirnya masih mengembalikan kesalahan yang sama.
[74/4092]0xc420294004[7/4092]0xc420294004S[74/4092]0xc4201bb004[mysql] 2018/07/13 11:53:13 driver.go:123: could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
(Perhatikan, kali ini tidak berulang. Ini hanya gagal sekali dan mengembalikan kesalahan ke aplikasi klien saya)
Melihat keluaran yang dihasilkan oleh print(data)
, apakah Anda berharap untuk melihat isi dari alamat tersebut? Senang untuk mencoba lagi jika Anda dapat memberi tahu saya cara mendapatkannya (akan terlihat sendiri, tetapi saya tidak punya banyak waktu untuk dihabiskan hari ini).
Saya meningkatkan dan mendapatkan kesalahan ini:
could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
Saya menggunakan dialer proxy dengan DialCfg dari github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql, dan dalam kasus saya, perbaikan sederhana adalah menambahkan AllowNativePasswords di config struct.
&mysqldriver.Config{
AllowNativePasswords: true,
...
}
@mglonnro lihat https://github.com/go-sql-driver/mysql/issues/815#issuecomment -425704501
Kesalahan ini diselesaikan dalam kasus saya dengan menentukan AllowNativePasswords: true
dalam konfigurasi
AllowNativePassword benar secara default.
Anda tidak boleh menggunakan Config{}
untuk membuat objek konfigurasi. Gunakan DSN atau NewConfig()
.
https://godoc.org/github.com/go-sql-driver/mysql#Config
Jika Config baru dibuat alih-alih diurai dari string DSN, fungsi NewConfig harus digunakan, yang menetapkan nilai default.
Terima kasih. Saya membuat Config
karena saya membaca di dokumen API, melewatkan langkah itu.
Komentar yang paling membantu
Saya meningkatkan dan mendapatkan kesalahan ini:
could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
Saya menggunakan dialer proxy dengan DialCfg dari github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql, dan dalam kasus saya, perbaikan sederhana adalah menambahkan AllowNativePasswords di config struct.
&mysqldriver.Config{ AllowNativePasswords: true, ... }