MYSQL HATA 2049 (HY000): Kullanılan eski (4.1.1 öncesi) kimlik doğrulama protokolü ref kullanan bağlantı (istemci seçeneği 'secure_auth' etkin)


9

5.0 sürümü 5.6 sürümüne olan tüm veritabanı dökümü geri yüklemeye çalıştığınızda, geri yüklendi ve bundan sonra yeniden bağlanmaya çalıştığınızda, aşağıdaki hatayı alıyorum

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol ref used (client option 'secure_auth' enabled)..

My.ini içinde aşağıdaki satırları eklemeyi denedim ve hizmeti yeniden başlattım, ancak sorun devam ediyor.

skip-grant-tables Aşağıdaki link MYSQL'de bir hata olduğunu söylüyor.

https://github.com/santisaez/powerstack/blob/master/packages/mysql/mysql-powerstack-secure_auth.patch

Herkes bu çözüm için herhangi bir düzeltme var mı?

Yanıtlar:


6

Eski eski karma algoritmasını kullanan şifreli kullanıcı hesaplarınız varsa bu bir hata değildir. Gönderdiğiniz bağlantıda belirtilen hata raporunu okursanız:

http://bugs.mysql.com/bug.php?id=69027

[1 Mayıs 15:24] Todd Farmer

Bunun çözümü ("çözüm", gerçekten) etkilenen kullanıcının parolasını 4.1 sonrası karmasına dönüştürmektir. Bu gerçekten önerilen en iyi uygulamadır, ne olursa olsun - 4.1'den önceki şifre sağlama ve yetkilendirme işleminde önemli güvenlik sınırlamaları vardır ( http://dev.mysql.com/doc/refman/5.0/tr/password-hashing.html adresindeki belgelerde ele alınmıştır. ).

mysql5.6 sunucusunda şemanın 5.0 sürümünü geri yüklemek her durumda kötü bir fikirdir, çünkü 5.6 bazı tablolarda ve tamamen yeni bazı tablolarda ek sütunlara sahiptir, bu da mysqldump'ı nasıl yapılandırdığınıza bağlı olarak artık eksik olabilir veya olmayabilir döküm dosyasını oluşturdu. Hemen göremeyeceğiniz başka sorunlara neden olmuş olabilirsiniz.

Ayrıca, skip-grant-tablesmakalede bahsedilen görmedim ... ama bu seçeneği sunucuya doğru uygularsanız, tüm kimlik doğrulama atlanır ve oturum açıp parolaları sıfırlayabilmeniz gerekir.


8

Komut satırında, başka seçeneğiniz yoksa aşağıdakine benzer bir şey kullanın ...

mysql -uTheUseerNAme -pThePassword DbName -h HostName --skip-secure-auth

Umarım bu birine yardımcı olur, çünkü bu benim bir Linux'tan bağlanma sorunumdu


bu benim için çalışmıyor. Hala hata mesajını alıyorum.
fanchyna

6

MySQL Workbench kullanıyorsanız, bu seçeneği işaretlemeniz gerekir:

resim açıklamasını buraya girin


Bu, veritabanına bağlanmak için çalışırken, içe / dışa aktarılamama sorunu devam edecektir. Ben şu anda eski auth protokolü ile veri almak / vermek için izin için bir yol arıyorum, bu test ve onayladım.
rkeet

Teşekkürler! Workbench kullanarak bağlanmaya çalıştığımda benim için çalıştı.
Huynh Vinh Phat

Bu seçeneğin tezgah 6.0.7'de olduğunu, ancak en son sürümde olmadığını gördüm.
Mian Asbat Ahmad

1

Bu gerçekten önceki cevaba yorum yapmak anlamına geliyor, ancak StackExchange yorumuna sığmayacak kadar büyük.

Ben de bu sorundan muzdariptim. Bu yüzden yeni bir stil karmasıyla yeni bir kullanıcı oluşturdum ve şimdi bu yeni kullanıcıyı sorunsuz bir şekilde kullanıyorum. İşte yaptım:

    [172.16.2.222:mysql Thu Nov  7 16:16:25 2013]> use mysql;
    Database changed
    [172.16.2.222:mysql Thu Nov  7 16:22:23 2013]> describe user;
    describe user;
    +-----------------------+-----------------------------------+------+-----+---------+-------+
    | Field                 | Type                              | Null | Key | Default | Extra |
    +-----------------------+-----------------------------------+------+-----+---------+-------+
    | Host                  | char(60)                          | NO   | PRI |         |       |
    | User                  | char(16)                          | NO   | PRI |         |       |
    | Password              | char(41)                          | NO   |     |         |       |

Şifre sütunumuzun yeni stil karmaları içerecek kadar geniş olduğunu görmek beni çok mutlu etti. (41 karakterden daha az genişlikte olsaydı, genişletme cesaretim olmayabilir :-)

    [172.16.2.222:mysql Thu Nov  7 16:13:10 2013]> show variables like '%pass%';
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | old_passwords   | ON    |
    | report_password |       |
    +-----------------+-------+
    2 rows in set (0.06 sec)

old_passwordsVarlık ONaçıkça sorun, bu yüzden geçici olarak değiştirdim:

    [172.16.2.222:mysql Thu Nov  7 16:13:59 2013]> set session old_passwords = 'OFF';
    Query OK, 0 rows affected (0.05 sec)

    [172.16.2.222:mysql Thu Nov  7 16:14:12 2013]> show variables like '%pass%';
    show variables like '%pass%';
    +-----------------+-------+
    | Variable_name   | Value |
    +-----------------+-------+
    | old_passwords   | OFF   |
    | report_password |       |
    +-----------------+-------+
    2 rows in set (0.06 sec)

Sonra yeni bir kullanıcı oluşturdum:

    [172.16.2.222:mysql Thu Nov  7 16:14:16 2013]> create user 'erich' IDENTIFIED BY 'SEKRIT PASSWORD';

... ve yeni karmaya bir göz atın:

    [172.16.2.222:mysql Thu Nov  7 16:14:26 2013]> select * from user order by User;
    +-----------+--------------+-------------------------------------------+--------
    | Host      | User         | Password                                  | Select_
    +-----------+--------------+-------------------------------------------+--------
    | localhost | someguy      | 3d9505dd323e53f1                          | Y      
    | %         | someotherguy | 79b3df3b004bb855                          | Y      
    | %         | erich        | *D2589EF6B59146801234567897BB190123456789 | N      
    | %         | anotheroldguy| 60577e0d77b9212b                          | Y      

Benim karımın diğerlerinden nasıl daha büyük olduğuna dikkat edin!

Sadece düzenli olmak için old_passwordsgeri döndüm OFF. Kimsenin neden eski şifreleri kullanarak yeni kullanıcılar oluşturmak istediğini düşünemediğim için bu muhtemelen anlamsızdı, ama kim bilir.

Her neyse: bu benim için çözdü.


Bu OP'nin sorusunu çözüyor mu? Değilse, belki de kendi soru ve cevabı olmalıdır.
Max Vernon

@ MaxVernon Çözüm olup olmadığına karar vermek OP'ye bağlıdır. Benim için çalıştı.
offby1
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.