何が起こるべきか、代わりに何が起こるかを教えてください
mysql5.7不明な認証プラグイン
// 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
ドライバーバージョン(またはgit SHA):オリジン/マスター
Goバージョン:go1.10.2darwin / amd64
サーバーバージョン: MySQL5.7
サーバーOS:macOS 10.13.4(17E202)
次のセクションも、問題テンプレートの正当な理由です。
### 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
私の推測では、マスターブランチは最新バージョンではありません。 git rev-parse HEAD
特定のバージョンを確認し、同期して、必要に応じて新しいバージョンで再試行してください。
こんにちは、私もこの問題を抱えています。 解決しましたか?
番号
このブランチで問題が解決しましたか? https://github.com/go-sql-driver/mysql/tree/empty_auth
いずれにせよ、このブロックの後に単純なprint(data)
挿入できれば素晴らしいと思いますhttps://github.com/go-sql-driver/mysql/blob/d523deb1b23d913de5bdada721a6071e71283618/packets.go#L157 -L167ここhttps://github.com/go-sql-driver/mysql/blob/d523deb1b23d913de5bdada721a6071e71283618/packets.go#L469-L474で、結果のパケットダンプを送信して、回帰テストを作成できるようにします。
@gocuntianは問題を解決しましたか?
同じ質問があります。私の質問は、サーバーが認証方法なしでinitパケットを送信することです。
ソースコードの蓄積:
auth.go:240、func auth()で、次のコードを追加します。
プラグインの場合== "" {
プラグイン= "mysql_native_password"
}
私の問題は解決されました
MySQL5.1に接続したときに同じ警告が表示されました。
auth.go:293: unknown auth plugin:
driver.go:120: could not use requested auth plugin '': this authentication plugin is not supported
ブランチhttps://github.com/go-sql-driver/mysql/tree/empty_authで修正されました。 支店を統合する予定はありますか? @julienschmidt
私は同じ問題を抱えています。
driver.go:113: could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
マスターで失敗します(取得します)
v1.4.0で失敗する
v1.3.0で動作します
あなたがそれを必要とするならば、私はより多くの情報を提供することができます。 それとも、それは別の問題であり、私は新しい問題を作成する必要があると思いますか?
再開しました。 #828および#835( empty_auth
ブランチのPR)を参照してください
ここでは、非常によく似た症状を持つ2つの問題があるように思われることを強調したいと思います。
#835の修正は、空の認証プラグイン名がある場合を修正するように見えますが、 @ mbertschlerの問題は解決せず、 mysql_native_password
プラグインで発生しました(https://github.com/を参照)。詳細については、go-sql-driver / mysql / issues / 828#issuecomment-401856689を参照してください)。
それは別の問題かもしれませんが、#835で提案されたものよりも幅広い修正が必要だと思います。
@ kwoodhouse93たとえば、ここで説明されているように、パケットログを送信できますか: https : empty_auth
ブランチを使用/ #835)?
また、万が一の場合に備えて、DSNに&allowNativaPasswords=true
を追加してみてください(デフォルトではtrue
である必要があります)
empty_auth
ブランチを使用して、上記の場所にprint(data)
を追加したところ、出力は次のようになりました。
[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.
...
それは再試行を停止する前に12回繰り返され、それぞれがわずかに異なるアドレスを持っていました。
DSNに関しては、 mysql.Config
とFormatDSN()
ます。 AllowNativePasswords
作成するときに省略されましたConfig
構造体を、私は追加して、 AllowNativePasswords: true,
。 これにより動作が多少変更されましたが、最終的には同じエラーが返されました。
[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.
(今回は繰り返されなかったことに注意してください。一度失敗しただけで、クライアントアプリにエラーが返されました)
print(data)
によって生成された出力を見て、それらのアドレスの内容を見たいと思っていましたか? それを取得する方法を教えていただければ、もう一度お試しください(自分のように見えますが、今日はこれに費やす時間があまりありません)。
アップグレードして次のエラーが発生しました:
could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysqlのDialCfgでプロキシダイヤラーを使用しています。私の場合、簡単な修正はconfig構造体にAllowNativePasswordsを追加することでした。
&mysqldriver.Config{
AllowNativePasswords: true,
...
}
私の場合、このエラーは、構成でAllowNativePasswords: true
を指定することで解決されました。
AllowNativePasswordはデフォルトでtrueです。
構成オブジェクトの作成にConfig{}
を使用しないでください。 DSNまたはNewConfig()
ます。
https://godoc.org/github.com/go-sql-driver/mysql#Config
DSN文字列から解析される代わりに新しいConfigが作成される場合は、デフォルト値を設定するNewConfig関数を使用する必要があります。
ありがとう。 APIドキュメントを読んだので、 Config
を作成していましたが、そのステップを逃しました。
最も参考になるコメント
アップグレードして次のエラーが発生しました:
could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysqlのDialCfgでプロキシダイヤラーを使用しています。私の場合、簡単な修正はconfig構造体にAllowNativePasswordsを追加することでした。
&mysqldriver.Config{ AllowNativePasswords: true, ... }