<p>mysql5.7 unbekanntes Auth-Plugin</p>

Erstellt am 6. Juni 2018  ·  20Kommentare  ·  Quelle: go-sql-driver/mysql

Fehlerbeschreibung

Sagen Sie uns, was passieren soll und was stattdessen passiert
mysql5.7 unbekanntes Auth-Plugin

Beispielcode

// 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)
    }

Fehlerprotokoll

[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

Aufbau

  • Treiberversion (oder Git SHA): Ursprung / Master

  • Go- Version: go1.10.2 darwin / amd64

  • Serverversion : MySQL 5.7

  • Server-Betriebssystem: macOS 10.13.4 (17E202)

bug

Hilfreichster Kommentar

Ich habe ein Upgrade durchgeführt und diesen Fehler erhalten:

could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.

Ich verwende den Proxy-Dialer mit DialCfg von github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql. In meinem Fall bestand die einfache Lösung darin, AllowNativePasswords in die Konfigurationsstruktur aufzunehmen.

&mysqldriver.Config{ AllowNativePasswords: true, ... }

Alle 20 Kommentare

Der folgende Abschnitt enthält auch einen guten Grund für die Ausgabevorlage:

### 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

Ich vermute, dass Ihr Hauptzweig nicht die neueste Version ist. Bitte überprüfen Sie die spezifische Version mit git rev-parse HEAD und synchronisieren Sie sie und versuchen Sie es gegebenenfalls erneut mit der neueren Version.

Hallo, ich habe auch dieses Problem. Hast du dich entschlossen?

Nein

Behebt dieser Zweig das Problem für Sie? https://github.com/go-sql-driver/mysql/tree/empty_auth

In jedem Fall wäre es großartig, wenn Sie nach diesem Block ein einfaches print(data) einfügen könnten. Https://github.com/go-sql-driver/mysql/blob/d523deb1b23d913de5bdada721a6071e71283618/packets.go#L157 -L167 und hier https://github.com/go-sql-driver/mysql/blob/d523deb1b23d913de5bdada721a6071e71283618/packets.go#L469 -L474 und senden Sie uns den resultierenden Paketspeicherauszug, damit wir daraus einen Regressionstest erstellen können.

@gocuntian hast du das Problem gelöst?

Ich habe die gleiche Frage, meine Frage ist, dass mein Server das Init-Paket ohne die Art der Authentifizierung sendet
akkommodierender Quellcode:
auth.go: 240, füge in func auth () den Code hinzu:
if plugin == "" {
plugin = "mysql_native_password"
}}
Mein Problem wurde gelöst

Beim Herstellen einer Verbindung zu MySQL 5.1 wurde dieselbe Warnung angezeigt.

auth.go:293: unknown auth plugin:
driver.go:120: could not use requested auth plugin '': this authentication plugin is not supported

Der Zweig https://github.com/go-sql-driver/mysql/tree/empty_auth hat das @ Julienschmidt

Ich habe das gleiche Problem.
driver.go:113: could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
Scheitert am Master (geh holen)
Schlägt mit v1.4.0 fehl
Funktioniert mit v1.3.0

Ich könnte weitere Informationen zur Verfügung stellen, wenn Sie es brauchen. Oder denkst du, das ist ein anderes Problem und ich sollte ein neues Problem erstellen?

Wiedereröffnet. Siehe # 828 und # 835 (PR für empty_auth Branch)

Ich möchte nur hervorheben, dass es hier zwei Probleme mit sehr ähnlichen Symptomen zu geben scheint.

Das Update in # 835 scheint den Fall zu beheben, in dem ein leerer Name für das Auth-Plugin vorhanden ist, löst jedoch nicht das Problem, das @mbertschler und ich mit dem Plugin mysql_native_password (siehe https://github.com/). go-sql-driver / mysql / issue / 828 # issuecomment-401856689 für weitere Details).

Vielleicht ist das ein anderes Problem, aber ich vermute, dass eine umfassendere Korrektur erforderlich ist als die in # 835 vorgeschlagene.

@ kwoodhouse93 Können Sie uns ein https://github.com/go-sql-driver/mysql/issues/815#issuecomment -396244978 (vorzugsweise über den Zweig empty_auth / # 835)?

Und versuchen Sie auch, &allowNativaPasswords=true zu Ihrem DSN hinzuzufügen, nur für den Fall (es sollte standardmäßig true )

Unter Verwendung des Zweigs empty_auth ich an den genannten Stellen print(data) hinzugefügt, und die Ausgabe war:

[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.
...

Dies wiederholte sich 12 Mal, bevor es aufhörte, es erneut zu versuchen, jeweils mit einer etwas anderen Adresse.

In Bezug auf meinen DSN verwende ich mysql.Config mit FormatDSN() . AllowNativePasswords wurde beim Erstellen der Config -Struktur weggelassen, daher habe ich AllowNativePasswords: true, hinzugefügt. Das hat das Verhalten etwas verändert, aber letztendlich immer noch den gleichen Fehler zurückgegeben.

[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.

(Beachten Sie, dass es diesmal nicht wiederholt wurde. Es ist nur einmal fehlgeschlagen und hat einen Fehler an meine Client-App zurückgegeben.)

Hatten Sie angesichts der Ausgabe von print(data) gehofft, den Inhalt dieser Adressen zu sehen? Ich würde es gerne noch einmal versuchen, wenn Sie mir sagen können, wie ich es erreichen soll (würde mich selbst sehen, aber ich habe heute nicht viel mehr Zeit dafür).

Ich habe ein Upgrade durchgeführt und diesen Fehler erhalten:

could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.

Ich verwende den Proxy-Dialer mit DialCfg von github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql. In meinem Fall bestand die einfache Lösung darin, AllowNativePasswords in die Konfigurationsstruktur aufzunehmen.

&mysqldriver.Config{ AllowNativePasswords: true, ... }

Dieser Fehler wurde in meinem Fall durch Angabe von AllowNativePasswords: true in der Konfiguration behoben

AllowNativePassword ist standardmäßig true.
Sie sollten Config{} , um ein Konfigurationsobjekt zu erstellen. Verwenden Sie DSN oder NewConfig() .

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

Wenn eine neue Konfiguration erstellt wird, anstatt aus einer DSN-Zeichenfolge analysiert zu werden, sollte die Funktion NewConfig verwendet werden, mit der Standardwerte festgelegt werden.

Vielen Dank. Ich habe ein Config weil ich die API-Dokumente gelesen und diesen Schritt verpasst habe.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen