<p>plugin d'authentification inconnu mysql5.7</p>

Créé le 6 juin 2018  ·  20Commentaires  ·  Source: go-sql-driver/mysql

Description du problème

Dites-nous ce qui devrait se passer et ce qui se passe à la place
plugin d'authentification inconnu mysql5.7

Exemple de code

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

Journal des erreurs

[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

Configuration

  • Version du pilote (ou git SHA): origine / maître

  • Version Go

  • Version du serveur

  • OS du serveur: macOS 10.13.4 (17E202)

bug

Commentaire le plus utile

J'ai mis à niveau et j'ai obtenu cette erreur:

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

J'utilise le numéroteur proxy avec DialCfg de github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql, et dans mon cas, la solution simple était d'ajouter AllowNativePasswords dans la structure de configuration.

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

Tous les 20 commentaires

La section suivante est également pour une bonne raison dans le modèle de problème:

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

Je suppose que votre branche principale n'est pas la dernière version. Veuillez vérifier la version spécifique avec git rev-parse HEAD et synchroniser et réessayer avec la version la plus récente si nécessaire.

bonjour, j'ai aussi ce problème. Avez-vous résolu?

non

Cette succursale résout-elle le problème pour vous? https://github.com/go-sql-driver/mysql/tree/empty_auth

Dans tous les cas, ce serait bien si vous pouviez insérer un simple print(data) après ce bloc https://github.com/go-sql-driver/mysql/blob/d523deb1b23d913de5bdada721a6071e71283618/packets.go#L157 -L167 et ici https://github.com/go-sql-driver/mysql/blob/d523deb1b23d913de5bdada721a6071e71283618/packets.go#L469 -L474 et envoyez-nous le vidage de paquet résultant afin que nous puissions l'utiliser pour créer un test de régression.

@gocuntian avez-vous résolu le problème?

J'ai la même question, ma question est que mon serveur envoie le paquet d'initialisation sans le moyen d'authentification
codage du code source:
auth.go: 240, dans func auth (), ajoutez le code:
si plugin == "" {
plugin = "mysql_native_password"
}
mon problème a été résolu

J'ai reçu le même avertissement lors de la connexion à MySQL 5.1.

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

La branche https://github.com/go-sql-driver/mysql/tree/empty_auth l'a corrigé. Avez-vous un plan pour fusionner la succursale? @julienschmidt

J'ai le même problème.
driver.go:113: could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
Échoue sur le maître (va chercher)
Échec avec la v1.4.0
Fonctionne avec v1.3.0

Je pourrais vous fournir plus d'informations si vous en avez besoin. Ou pensez-vous que c'est un autre problème et que je devrais créer un nouveau problème?

Rouvert. Voir # 828 et # 835 (PR pour empty_auth succursale)

Je veux juste souligner qu'il semble y avoir deux problèmes ici avec des symptômes très similaires.

Le correctif dans # 835 semble résoudre le cas où il y a un nom de plugin d'authentification vide, mais il ne résout pas le problème @mbertschler et j'ai eu avec le plugin mysql_native_password (voir https://github.com/ go-sql-driver / mysql / issues / 828 # issuecomment-401856689 pour plus de détails).

C'est peut-être un problème différent, mais je soupçonne qu'un correctif plus large est nécessaire que celui proposé dans # 835.

@ kwoodhouse93 Pouvez-vous nous envoyer un journal de paquets, par exemple comme décrit ici: https://github.com/go-sql-driver/mysql/issues/815#issuecomment -396244978 (en utilisant de préférence la branche empty_auth / # 835)?

Et essayez également d'ajouter &allowNativaPasswords=true à votre DSN, juste au cas où (cela devrait être true par défaut)

En utilisant empty_auth branch, j'ai ajouté print(data) aux endroits mentionnés, et le résultat était:

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

Cela s'est répété 12 fois avant d'arrêter de réessayer, chacun avec une adresse légèrement différente.

Concernant mon DSN, j'utilise mysql.Config avec FormatDSN() . AllowNativePasswords été omis lors de la création de la structure Config , j'ai donc ajouté AllowNativePasswords: true, . Cela a quelque peu changé le comportement, mais a finalement renvoyé la même erreur.

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

(Notez que cela ne s'est pas répété cette fois. Il a échoué une seule fois et a renvoyé une erreur à mon application cliente)

En regardant la sortie produite par print(data) , espériez-vous voir le contenu de ces adresses? Heureux d'essayer à nouveau si vous pouvez me dire comment y arriver (je me regarderais, mais je n'ai pas beaucoup plus de temps à consacrer à cela aujourd'hui).

J'ai mis à niveau et j'ai obtenu cette erreur:

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

J'utilise le numéroteur proxy avec DialCfg de github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql, et dans mon cas, la solution simple était d'ajouter AllowNativePasswords dans la structure de configuration.

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

Cette erreur a été résolue dans mon cas en spécifiant AllowNativePasswords: true dans la configuration

AllowNativePassword est true par défaut.
Vous ne devriez pas utiliser Config{} pour créer un objet de configuration. Utilisez DSN ou NewConfig() .

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

Si une nouvelle configuration est créée au lieu d'être analysée à partir d'une chaîne DSN, la fonction NewConfig doit être utilisée, qui définit les valeurs par défaut.

Merci. Je créais un Config parce que j'ai lu dans la documentation de l'API, j'ai raté cette étape.

Cette page vous a été utile?
0 / 5 - 0 notes