<p>mysql5.7 ملحق مصادقة غير معروف</p>

تم إنشاؤها على ٦ يونيو ٢٠١٨  ·  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

إعدادات

  • إصدار برنامج التشغيل (أو بوابة SHA): الأصل / الرئيسي

  • إصدار Go

  • إصدار الخادم

  • نظام تشغيل الخادم: macOS 10.13.4 (17E202)

bug

التعليق الأكثر فائدة

قمت بالترقية وحصلت على هذا الخطأ:

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

أنا أستخدم طالب الوكيل مع DialCfg من github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql ، وفي حالتي كان الإصلاح البسيط هو إضافة 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 بدون طريقة المصادقة
كود المصدر accroding:
auth.go: 240 ، في func auth () ، أضف الكود:
إذا كان المكون الإضافي == "" {
plugin = "mysql_native_password"
}
تم حل مشكلتي

تلقيت نفس التحذير عند الاتصال بـ MySQL 5.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 بإصلاحه. هل لديك خطة لدمج الفرع؟ تضمين التغريدة

لدي نفس المشكلة.
driver.go:113: could not use requested auth plugin 'mysql_native_password': this user requires mysql native password authentication.
فشل في الماجستير (اذهب واحصل عليه)
فشل مع الإصدار 1.4.0
يعمل مع v1.3.0

يمكنني تقديم المزيد من المعلومات إذا كنت بحاجة إليها. أو هل تعتقد أن هذه مشكلة أخرى ويجب أن أقوم بإنشاء عدد جديد؟

أعيد فتحه. انظر # 828 و # 835 (العلاقات العامة للفرع empty_auth )

أريد فقط أن أوضح أنه يبدو أن هناك مشكلتين هنا بأعراض متشابهة جدًا.

يبدو أن الإصلاح في # 835 لإصلاح الحالة حيث يوجد اسم مكون إضافي للمصادقة فارغًا ، لكنه لا يحل المشكلة mysql_native_password (راجع https://github.com/ go-sql-driver / mysql / issues / 828 # issuecomment-401856689 لمزيد من التفاصيل).

ربما تكون هذه مشكلة مختلفة ، لكنني أظن أن هناك حاجة لإصلاح أوسع من ذلك المقترح في رقم 835

@ kwoodhouse93 هل يمكنك أن ترسل لنا سجل حزم ، على سبيل المثال كما هو موضح هنا: https://github.com/go-sql-driver/mysql/issues/815#issuecomment -396244978 (يفضل استخدام الفرع empty_auth / # 835)؟

وحاول أيضًا إضافة &allowNativaPasswords=true إلى DSN الخاص بك ، فقط في حالة (يجب أن يكون 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.Config مع FormatDSN() . تم حذف 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.

أنا أستخدم طالب الوكيل مع DialCfg من github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql ، وفي حالتي كان الإصلاح البسيط هو إضافة AllowNativePasswords في بنية التكوين.

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

تم حل هذا الخطأ في حالتي بتحديد AllowNativePasswords: true في التكوين

تكون AllowNativePassword صحيحة بشكل افتراضي.
يجب ألا تستخدم Config{} لإنشاء كائن التكوين. استخدم DSN أو NewConfig() .

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

إذا تم إنشاء تكوين جديد بدلاً من تحليله من سلسلة DSN ، فيجب استخدام وظيفة NewConfig ، والتي تحدد القيم الافتراضية.

شكرا. كنت أقوم بإنشاء Config لأنني قرأت في مستندات API ، فاتت هذه الخطوة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات