<p>mysql5.7不明な認証プラグイン</p>

作成日 2018年06月06日  ·  20コメント  ·  ソース: go-sql-driver/mysql

問題の説明

何が起こるべきか、代わりに何が起こるかを教えてください
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

構成

bug

最も参考になるコメント

アップグレードして次のエラーが発生しました:

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, ... }

全てのコメント20件

次のセクションも、問題テンプレートの正当な理由です。

### 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たとえば、ここで説明されているように、パケットログを送信できますか: httpsempty_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.ConfigFormatDSN()ます。 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, ... }

@mglonnrohttps //github.com/go-sql-driver/mysql/issues/815#issuecomment-425704501を参照してください

私の場合、このエラーは、構成でAllowNativePasswords: trueを指定することで解決されました。

AllowNativePasswordはデフォルトでtrueです。
構成オブジェクトの作成にConfig{}を使用しないでください。 DSNまたはNewConfig()ます。

https://godoc.org/github.com/go-sql-driver/mysql#Config

DSN文字列から解析される代わりに新しいConfigが作成される場合は、デフォルト値を設定するNewConfig関数を使用する必要があります。

ありがとう。 APIドキュメントを読んだので、 Configを作成していましたが、そのステップを逃しました。

このページは役に立ちましたか?
0 / 5 - 0 評価