<p>plugin de autenticação desconhecido para mysql5.7</p>

Criado em 6 jun. 2018  ·  20Comentários  ·  Fonte: go-sql-driver/mysql

Descrição do problema

Diga-nos o que deve acontecer e o que acontece em vez disso
plugin de autenticação desconhecido para mysql5.7

Código de exemplo

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

Log de erros

[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

Configuração

  • Versão do driver (ou git SHA): origin / master

  • Versão Go

  • Versão do servidor

  • SO do servidor: macOS 10.13.4 (17E202)

bug

Comentários muito úteis

Eu atualizei e recebi este erro:

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

Estou usando o discador proxy com DialCfg de github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql e, no meu caso, a solução simples foi adicionar AllowNativePasswords na estrutura de configuração.

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

Todos 20 comentários

A seção a seguir também tem um bom motivo no modelo de problema:

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

Meu palpite é que seu branch master não é a versão mais recente. Verifique a versão específica com git rev-parse HEAD sincronize e tente novamente com a versão mais recente, se necessário.

Olá, eu também tenho esse problema. Você resolveu?

não

Este branch corrige o problema para você? https://github.com/go-sql-driver/mysql/tree/empty_auth

Em qualquer caso, seria ótimo se você pudesse inserir um print(data) simples após este bloco https://github.com/go-sql-driver/mysql/blob/d523deb1b23d913de5bdada721a6071e71283618/packets.go#L157 -L167 e aqui https://github.com/go-sql-driver/mysql/blob/d523deb1b23d913de5bdada721a6071e71283618/packets.go#L469 -L474 e nos envie o dump do pacote resultante para que possamos usá-lo para criar um teste de regressão.

@gocuntian você resolveu o problema?

Eu tenho a mesma dúvida, minha dúvida é que meu servidor envia o pacote init sem a forma de autenticação
acumulando código-fonte:
auth.go: 240, em func auth (), adicione o código:
if plugin == "" {
plugin = "mysql_native_password"
}
meu problema foi resolvido

Recebi o mesmo aviso ao conectar ao MySQL 5.1.

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

A filial https://github.com/go-sql-driver/mysql/tree/empty_auth corrigiu isso. Você tem um plano para fundir o branch? @julienschmidt

Eu tenho o mesmo problema.
driver.go:113: could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
Falha no mestre (vá buscar)
Falha com v1.4.0
Funciona com v1.3.0

Eu poderia fornecer mais informações se você precisar. Ou você acha que é outro problema e devo criar um novo problema?

Reaberto. Consulte # 828 e # 835 (PR para empty_auth filial)

Só quero destacar que parece haver dois problemas aqui com sintomas muito semelhantes.

A correção em # 835 parece corrigir o caso em que há um nome de plug-in de autenticação vazio, mas não resolve o problema que @mbertschler e eu tivemos com o plug-in mysql_native_password (consulte https://github.com/ go-sql-driver / mysql / issues / 828 # issuecomment-401856689 para mais detalhes).

Talvez seja um problema diferente, mas suspeito que uma correção mais ampla seja necessária do que a proposta em # 835.

@ kwoodhouse93 Você pode nos enviar um log de pacote, por exemplo, conforme descrito aqui: https://github.com/go-sql-driver/mysql/issues/815#issuecomment -396244978 (de preferência usando a filial empty_auth / # 835)?

E também tente adicionar &allowNativaPasswords=true ao seu DSN, apenas para garantir (deve ser true por padrão)

Usando empty_auth branch, adicionei print(data) nos locais mencionados e o resultado foi:

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

Isso se repetiu 12 vezes antes de parar de tentar novamente, cada uma com um endereço ligeiramente diferente.

Com relação ao meu DSN, estou usando mysql.Config com FormatDSN() . AllowNativePasswords foi omitido ao criar a estrutura Config , então adicionei AllowNativePasswords: true, . Isso mudou um pouco o comportamento, mas no final das contas ainda retornou o mesmo erro.

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

(Observe, não se repetiu desta vez. Só falhou uma vez e retornou um erro para meu aplicativo cliente)

Olhando para a saída produzida por print(data) , você esperava ver o conteúdo desses endereços? Fico feliz em tentar de novo se você puder me dizer como fazer isso (olharia para mim, mas não tenho muito mais tempo para dedicar a isso hoje).

Eu atualizei e recebi este erro:

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

Estou usando o discador proxy com DialCfg de github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql e, no meu caso, a solução simples foi adicionar AllowNativePasswords na estrutura de configuração.

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

Este erro foi resolvido no meu caso especificando AllowNativePasswords: true na configuração

AllowNativePassword é verdadeiro por padrão.
Você não deve usar Config{} para criar um objeto de configuração. Use DSN ou NewConfig() .

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

Se um novo Config for criado em vez de ser analisado a partir de uma string DSN, a função NewConfig deve ser usada, que define os valores padrão.

Obrigado. Eu estava criando um Config porque li nos documentos da API, perdi essa etapa.

Esta página foi útil?
0 / 5 - 0 avaliações