Mysql veritabanı hatasının ayrıntılı açıklaması ERROR 1819 (HY000) -şifre politikasını değiştir

Genel Bakış

Son zamanlarda, veritabanını rpm ile kurduktan ve şifreyi değiştirdikten sonra bir hatayla karşılaştım: ERROR 1819 (HY000): Şifreniz mevcut politika gereksinimlerini karşılamıyor, aşağıdaki hatırlatma olarak sorunun ve çözüm sürecinin basit bir kaydı!

Aşağıdakiler işletim sistemi centos7.3'e dayanmaktadır, mysql sürümü gösterim için 5.7.24'tür.

sorun

Şekilde gösterildiği gibi, şifre değiştirilirken bir hata rapor edilir:

Fikirler

Güvenliği artırmak için MySQL 5.7, kök kullanıcı için rastgele bir parola üretir Hata günlüğünde, RPM paketi yüklüyse, hata günlüğünün konumu ile ilgili olarak varsayılan değer /var/log/mysqld.log'dur.

İlk kez oturum açarken parola basit bir parola ile değiştirilirse, aşağıdaki hata bildirilecektir:

mysql > '12345678' TARAFINDAN TANIMLANAN ALTER KULLANICI KULLANICI (); HATA 1819 (HY000): Şifreniz mevcut politika gereksinimlerini karşılamıyor

Bu aslında validate_password_policy'nin değeriyle ilgilidir.

Validate_password_policy aşağıdaki değerlere sahiptir:

Varsayılan değer ORTA olan 1'dir, bu nedenle başlangıçta ayarlanan parola uzunluğu karşılamalı ve sayılar, küçük veya büyük harfler ve özel karakterler içermelidir.

Bazen sadece kendi testim için şifreyi bu kadar karmaşık ayarlamak istemiyorum Örneğin, sadece root şifresini 123456 olarak ayarlamak istiyorum.

İki genel parametre değiştirilmelidir:

İlk olarak, validate_password_policy parametresinin değerini değiştirin

mysql > global validate_password_policy = 0 olarak ayarlayın; Sorgu TAMAM, 0 satır etkilendi (0,00 saniye)

Bu şekilde, şifreyi değerlendirme kriteri şifrenin uzunluğuna bağlıdır. Bu, validate_password_length parametresi tarafından belirlenir.

mysql > @@ validate_password_length öğesini seçin; + ---------------------------- + | @@ validate_password_length | + ---------------------------- + | 8 | + ---------------------------- + Sette 1 satır (0,00 sn)

Validate_password_length parametresinin varsayılan değeri, minimum sınırı olan 8'dir, minimum değer:

validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

Bunların arasında, validate_password_number_count paroladaki verilerin uzunluğunu belirtir, validate_password_special_char_count paroladaki özel karakterlerin uzunluğunu belirtir ve validate_password_mixed_case_count paroladaki büyük ve küçük harflerin uzunluğunu belirtir.

Bu parametrelerin varsayılan değeri 1'dir, dolayısıyla validate_password_length'in minimum değeri 4'tür. Validate_password_length değerinin 4'ten küçük olduğunu açıkça belirtirseniz, herhangi bir hata rapor edilmemesine rağmen, validate_password_length değeri 4 olarak ayarlanacaktır. Aşağıdaki gibi:

mysql > @@ validate_password_length öğesini seçin; + ---------------------------- + | @@ validate_password_length | + ---------------------------- + | 8 | + ---------------------------- + Sette 1 satır (0,00 sn) mysql > global validate_password_length = 1 olarak ayarlayın; Sorgu TAMAM, 0 satır etkilendi (0,00 saniye) mysql > @@ validate_password_length öğesini seçin; + ---------------------------- + | @@ validate_password_length | + ---------------------------- + | 4 | + ---------------------------- + Sette 1 satır (0,00 sn)

Validate_password_number_count, validate_password_special_char_count, validate_password_mixed_case_count değerlerinden herhangi biri değiştirilirse, validate_password_length dinamik olarak değiştirilecektir.

mysql > @@ validate_password_length öğesini seçin; + ---------------------------- + | @@ validate_password_length | + ---------------------------- + | 4 | + ---------------------------- + Sette 1 satır (0,00 sn) mysql > @@ validate_password_mixed_case_count öğesini seçin; + -------------------------------------- + | @@ validate_password_mixed_case_count | + -------------------------------------- + | 1 | + -------------------------------------- + Sette 1 satır (0,00 sn) mysql > global validate_password_mixed_case_count = 2 olarak ayarlayın; Sorgu TAMAM, 0 satır etkilendi (0,00 saniye) mysql > @@ validate_password_mixed_case_count öğesini seçin; + -------------------------------------- + | @@ validate_password_mixed_case_count | + -------------------------------------- + | 2 | + -------------------------------------- + Sette 1 satır (0,00 sn) mysql > @@ validate_password_length öğesini seçin; + ---------------------------- + | @@ validate_password_length | + ---------------------------- + | 6 | + ---------------------------- + Sette 1 satır (0,00 sn)

Tabii ki, öncül, validate_password eklentisinin yüklenmiş olması gerektiğidir ve MySQL5.7 varsayılan olarak kurulur.

Peki, validate_password eklentisinin kurulu olup olmadığı nasıl doğrulanır? Aşağıdaki parametreleri kontrol edebilirsiniz, kurulu değilse çıkış boş olacaktır.

mysql > DEĞİŞKENLERİ GİBİ GÖSTER'validate_password% '; + -------------------------------------- + ------- + | Değişken_adı | Değer | + -------------------------------------- + ------- + | validate_password_dictionary_file | | validate_password_length | 6 | | validate_password_mixed_case_count | 2 | | validate_password_number_count | 1 | | validate_password_policy | DÜŞÜK | | validate_password_special_char_count | 1 | + -------------------------------------- + ------- + Sette 6 sıra (0.00 sn)

çözmek

Yukarıdakiler çok açık bir şekilde açıklandı, bu yüzden burada sadece şunları yapmam gerekiyor:

Set global validate_password_policy = 0 çözülebilir. Aşağıdaki gibi:

şifreyi başarıyla değiştir.

Ayrıca mysql5.7 şifre değiştirme stratejisinin ne olduğunu görmek için kendiniz de test edebilirsiniz. Daha sonra daha fazla DBA içeriği paylaşacağız ve ilgilenen arkadaşlar buna dikkat edebilir ~

"Robot Eğlencesi" çizimi nasıl çocukluğumun gölgesi oldu?
önceki
Diğerinin frenlerini test etmek için kendi güvenliğinizi kullanmıyor musunuz?
Sonraki
Kuantum İletişimin Koşulsuz Güvenliği "Üç Büyük Kapı" Garantisi Kuantum Teknolojisi Bilgi Güvenliği
Çin Cumhuriyeti'ndeki Haydutların Zulmü
Oracle veritabanı yapısı senkronizasyonunu elde etmek için Navicat aracının ayrıntılı açıklaması
[Yeni Juno Intelligence] Jüpiter'in kutuplarında devasa kasırga fırtınası sürülerini gösteren görüntüler geri döndü
LV beni sergiyi izlemeye davet etti, süreç o kadar basit değil
Oracle veritabanı OutLines - SQL yürütme planını kontrol etme mekanizması kullanımını açıklayın
Oyundaki Kun nedir?
Açık kaynaklı log analiz ve yönetim yazılımının detaylı açıklaması-ELK mimarisi ilkesi ve tanıtımı
Çocuk sahibi olmak istemeyen genç sanatçılar
Sichuan-Tibet hattında, plastik torbalar neden Land Cruiser'dan daha kullanışlıdır?
Üretim ortamında bir depolama sürecini optimize etme sürecini hatırlayın (42 saniye -> 0,06 saniye)
İnsan tasarımının çöküşünü bilimsel sürdürülebilir kalkınma açısından görüntüleyin
To Top