Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

TiProxy is incompatible with go-sql-driver 1.3.0

Ouverte
#325 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
À clarifier
Activité
À l'abandon
Stack technique
go, mysql
Domaine
backend, databases

Piste de recherche

Reproduisez l’échec en démarrant TiDB et TiProxy, puis en vous connectant avec go-sql-driver/mysql 1.3.0 en utilisant l’exemple de l’issue. Lisez packets.go de go-sql-driver/mysql v1.3.0 autour des lignes 495-497 et comparez le handshake d’authentification avec la version 1.4.0 ; c’est terminé lorsque le problème de compatibilité et une voie de correction prise en charge par le projet sont établis.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

wontfix

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)
  1. Start TiDB and TiProxy
  2. Connect to TiProxy with go 1.3.0
import (
	"database/sql"
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	mdb, err := sql.Open("mysql", "root@tcp(localhost:6001)/test")
	if err != nil {
		panic(err)
	}
	err = mdb.Ping()
	if err != nil {
		panic(err)
	}
}
2. What did you expect to see? (Required)

No error

3. What did you see instead (Required)

Driver reports this user requires mysql native password authentication.

4. What is your version? (Required)

master.

The reason:

  • Go-sql-driver sends the auth packet with mysql_native_password. But when TiProxy requests to switch auth method to mysql_native_password, go-sql-driver just reports ErrNativePassword. See https://github.com/go-sql-driver/mysql/blob/v1.3.0/packets.go#L495-L497. I think there's no way to avoid this problem on TiProxy side.
  • Connecting to TiDB directly doesn't have this problem because TiDB won't send a switch auth request in this case.
  • Go-sql-driver 1.4.0 works well.
Langage dominant
Go
Étoiles
73
Forks
40
Merge moyen
15 h 43 min
PR mergées (30 j)
9

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de pingcap/tiproxy

Toutes les issues de pingcap/tiproxy

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.