Parolanız mevcut politika gereksinimlerini karşılamıyor


148

Ben sözdizimi ile mysql yeni bir kullanıcı oluşturmak istiyorum:

create user 'demo'@'localhost' identified by 'password';

Ancak bir hata döndürür:

Parolanız mevcut politika gereksinimlerini karşılamıyor.

Birçok şifre denedim ama çalışmıyor. Bunu nasıl düzeltebilirim?


1
Şifre politikası seviyesini düşürün. Buraya bir göz atın: dev.mysql.com/doc/refman/5.6/en/…
Fjarlaegur

4
Parola ilkesi olarak ne ayarladınız? Şifre doğrulama modülünüz için ayarlanan değişkenleri aşağıdakileri kullanarak kontrol edebilirsiniz:SHOW VARIABLES LIKE 'validate_password%'
JNevill

Teşekkürler! Şifre politikası seviyesini düşürdüm ve işe yarıyor.
Nguyen

1
Ben kullanarak sorunumu çözdüUNINSTALL COMPONENT 'file://component_validate_password';
princebillyGK

Yanıtlar:


245

Parolanız yüzünden. MySQL istemcisinde aşağıdaki sorguyu kullanarak parola doğrulama yapılandırma metriklerini görebilirsiniz :

SHOW VARIABLES LIKE 'validate_password%';

Çıktı şöyle olmalıdır:

+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password.check_user_name    | ON    |
| validate_password.dictionary_file    |       |
| validate_password.length             | 6     |
| validate_password.mixed_case_count   | 1     |
| validate_password.number_count       | 1     |
| validate_password.policy             | LOW   |
| validate_password.special_char_count | 1     |
+--------------------------------------+-------+

şifre politikası düzeyini daha düşük olarak ayarlayabilirsiniz, örneğin:

SET GLOBAL validate_password_length = 6;
SET GLOBAL validate_password_number_count = 0;

MySQL Belgelerini kontrol edin .


31
Cennet uğruna bir YouTube videosu değil , resmi MySQL belgelerini belirtmelisiniz .
Lorne Marquis

26
Geliştirme şifresi için 'password' kullanmak için aşağıdaki komutu kullanın:SET GLOBAL validate_password_policy = 0;
Mahmudul Hasan Shohag

4
SET GLOBAL validate_password.length = 6; SET GLOBAL validate_password.number_count = 0; güncellenmiş!!
BeatingBytes

6
sadeceSET GLOBAL validate_password.policy = 0;
iamtodor

1
Bu bana yardımcı oldu çünkü 30 karakter uzunluğundaki parolamın neden "zayıf" (özel karakter yok) olduğunu gösterdi. Özel karakter gereksinimini kaldırabiliyordum ve minimum uzunluğu 8'den 20'ye
çıkartabildim

68

NOT: Bu güvenli bir çözüm olmayabilir. Ancak bir test ortamında çalışıyorsanız, hızlı bir düzeltmeye ihtiyacınız vardır ve güvenlik ayarlarını bile umursamazsınız. Bu hızlı bir çözümdür.

"Mysql_secure_installation" komutunu çalıştırdığımda ve parola güvenlik düzeyini "orta" olarak değiştirdiğimde de aynı sorun oldu.

Aşağıdakileri çalıştırarak hatayı atladım:

mysql -h localhost -u root -p
mysql>uninstall plugin validate_password;

gerekirse "validate_password" eklentisini yeniden yüklediğinizden emin olun.


3
Korkunç çözüm. Seviyeyi size uygun olan seviyeye düşürmelisiniz, tüm tesisi kaldırmamalısınız.
Lorne Marquis

10
gönderi için teşekkürler. hızlı ve kirli düzeltme. @kennyut'un söylediği gibi: "validate_password" eklentisini yeniden yüklediğinizden emin olun
Meng Zhao

52

Şifre politikasının ne olduğunu umursamıyorsanız. Aşağıdaki mysql komutunu vererek DÜŞÜK olarak ayarlayabilirsiniz:

mysql> SET GLOBAL validate_password_policy=LOW;

8
SET GLOBAL validate_password.policy=LOW;yerine olmalı
songyy

22

MySQL 8 için *

SET GLOBAL validate_password.policy=LOW

Politika hakkında açıklama yapmak için Referans Bağlantı - Buraya Tıklayın


20

Komutu çalıştırdıktan sonra sudo mysql_secure_installation.

  1. sudo mysqlMySQL istemine girmek için çalıştırın .
  2. SELECT user,authentication_string,plugin,host FROM mysql.user;Kullanıcı kökünün eklenti olarak auth_socket olup olmadığını kontrol etmek için bunu çalıştırın .
  3. Sonra bunu çalıştırmadan uninstall plugin validate_password;önce ayrıcalıkları bırakmak için çalıştırın . Parolayı güçlü bir parolaya ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';değiştirdiğinizden emin olun .

NOT: daha fazla yardım için bu bağlantıya göz atın https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04


11

MySQL şifre politikasını DÜŞÜK olarak değiştirmeniz gerekir.

root olarak giriş yap

mysql -u root -p

politikayı değiştir

SET GLOBAL validate_password_policy=LOW;

veya

SET GLOBAL validate_password_policy=0;

çıkış

exit

MySQL hizmetini yeniden başlat

sudo service mysqld restart

MySQL şifre politikasını Low = 0 / Medium = 1 / High = 2 olarak değiştirmeniz gerekir.

SET GLOBAL validate_password_policy=0;
SET GLOBAL validate_password_policy=1;    
SET GLOBAL validate_password_policy=2;

8

MySql 8 için aşağıdaki komut dosyasını kullanabilirsiniz:

SET GLOBAL validate_password.LENGTH = 4;
SET GLOBAL validate_password.policy = 0;
SET GLOBAL validate_password.mixed_case_count = 0;
SET GLOBAL validate_password.number_count = 0;
SET GLOBAL validate_password.special_char_count = 0;
SET GLOBAL validate_password.check_user_name = 0;
ALTER USER 'user'@'localhost' IDENTIFIED BY 'pass';
FLUSH PRIVILEGES;

7

Bence "validate_password_policy" yi "düşük" olarak ayarlamak veya "şifre eklentisini doğrula" yı kaldırmak doğru bir şey değildir. Veritabanınızın güvenliğinden asla ödün vermemelisiniz (gerçekten umursamıyorsanız). Sadece iyi bir şifre seçebildiğinizde neden insanların bu seçenekleri önerdiğini merak ediyorum.

Bu sorunun üstesinden gelmek için, mysql'de aşağıdaki komutu yürüttüm: @JNevill tarafından önerilen 'VARIABLES LIKE' validate_password% ' GÖSTER. "Validate_password_policy", diğer şeylerle birlikte Orta olarak ayarlandı. İşte yürütme ekran görüntüsü: Şifre Politikasını Doğrula

Sonuç açıklayıcıdır. Geçerli bir şifre için (Şifre politikası orta olarak ayarlandığında):

  • Şifre en az 8 karakter uzunluğunda olmalı
  • Karışık harf sayısı 1'dir (Küçük harflerle en az 1 harf ve büyük harflerle 1 harf)
  • Sayı sayısı 1
  • Minimum özel Karakter sayısı 1

Dolayısıyla geçerli bir parola ilkeye uymalıdır. Yukarıdaki kurallar için geçerli şifre örnekleri:

  • Student123 @
  • 100 $ NINZAcoder
  • demoPass # 00

Politikayı yerine getirdiği sürece herhangi bir kombinasyonu seçebilirsiniz.

Diğer "validate_password_policy" için sadece farklı seçenekler için değerlere bakabilir ve buna göre şifrenizi seçebilirsiniz ( "GÜÇLÜ" için denemedim ).

https://dev.mysql.com/doc/refman/5.6/en/validate-password-options-variables.html


2
En iyi şifre politikası için GÜÇLÜ.
Steam gamer

Ben de bozmak düşündüren insanları anlamıyorum validate_password_policyiçin LOW. Kullanıcılar, gereksinimi karşılayan güçlü bir şifre oluşturabilir veya oluşturabilir. Nasıl yapılacağından emin değilseniz, bunun için bir araç kullanın. Örneğin, github.com/joseluisq/rpasswd
joseluisq

3

1.Adım: Varsayılan kimlik doğrulama eklentinizi kontrol edin

SHOW VARIABLES LIKE 'default_authentication_plugin';

2.Adım: Şifre doğrulama gereksinimlerinizi karşılama

SHOW VARIABLES LIKE 'validate_password%';

3.Adım: Kullanıcılarınızı doğru şifre gereksinimleriyle kurma

CREATE USER '<your_user>'@'localhost' IDENTIFIED WITH '<your_default_auth_plugin>' BY 'password';

3

Ben de aynı Sorun vardı ve Cevap sadece önünüzde, mysql gibi yüklerken betiği ne zaman çalıştırdığınızı unutmayın

sudo mysql_secure_installation

orada hangi şifre türünü seçmek istersiniz

Üç düzey şifre doğrulama politikası vardır:

DÜŞÜK Uzunluk> = 8 ORTA Uzunluk> = 8, sayısal, karışık harf ve özel karakterler GÜÇLÜ Uzunluk> = 8, sayısal, karışık harf, özel karakterler ve sözlük dosyası

Lütfen 0 = DÜŞÜK, 1 = ORTA ve 2 = GÜÇLÜ girin:

aynı politikaya bir şifre vermelisin

şifreleriniz için bazı örnek örnekler:
0 abcdabcd
türü abcd1234
için : 1 türü için: 2 türü için:ancd@1234


2

MySQL 8.0.x ile bu sorunu yaşayan Laravel kullanıcıları için

'modes'=> [
             'ONLY_FULL_GROUP_BY',
             'STRICT_TRANS_TABLES',
             'NO_ZERO_IN_DATE',
             'NO_ZERO_DATE',
             'ERROR_FOR_DIVISION_BY_ZERO',
             'NO_ENGINE_SUBSTITUTION',
            ],

database.php dosyanıza aşağıdaki gibi:

// database.php

    'connections' => [

        'mysql' => [
            'driver'      => 'mysql',
            'host'        => env( 'DB_HOST', '127.0.0.1' ),
            'port'        => env( 'DB_PORT', '3306' ),
            'database'    => env( 'DB_DATABASE', 'forge' ),
            'username'    => env( 'DB_USERNAME', 'forge' ),
            'password'    => env( 'DB_PASSWORD', '' ),
            'unix_socket' => env( 'DB_SOCKET', '' ),
            'charset'     => 'utf8mb4',
            'collation'   => 'utf8mb4_unicode_ci',
            'prefix'      => '',
            'strict'      => true,
            'engine'      => null,
            'modes'       => [
                'ONLY_FULL_GROUP_BY',
                'STRICT_TRANS_TABLES',
                'NO_ZERO_IN_DATE',
                'NO_ZERO_DATE',
                'ERROR_FOR_DIVISION_BY_ZERO',
                'NO_ENGINE_SUBSTITUTION',
            ],
        ],
    ],

Benim için düzeltti.


2

Sorun, şifrenizin şifre doğrulama kurallarına uymamasıdır. Sorununuzu çözmek için aşağıdaki adımları uygulayabilirsiniz.

Aşağıdaki kodu yazarak şifre doğrulama yapılandırma matrisini görebilirsiniz.

mysql-> SHOW VARIABLES LIKE 'validate_password%';

Sonra matris içinde karşılık gelen değerlere sahip değişkenler aşağıda bulabilirsiniz ve denetlemek orada var validate_password_length, validate_password_number_countve validate_password_policy.

Bu değişkenler için kullanılan değerleri kontrol edin. Emin olun validate_password_length6'dan daha olmamalıdır büyük Sen kodunun altına kullanarak 6'ya olduğunu ayarlayabilirsiniz.

SET GLOBAL validate_password_length = 6;

Bundan sonra validate_password_number_count0'a ayarlamanız gerekir . Aşağıdaki kodu kullanarak yapın.

SET GLOBAL validate_password_number_count = 0;

Nihayet sizi ayarlamak zorunda validate_password_policyiçin low. Bu şekilde Mediumveya Highdaha az güvenli şifrelerinize izin vermeyecek şekilde sahip olmak . Bunu lowaşağıdaki kodla ayarlayın .

SET GLOBAL validate_password_policy=LOW;

1

7 MySql doğrulama kuralını sağlayan şifreyi ayarlayın

Örneğin:- d_VX>N("xn_BrD2y

Doğrulama ölçütlerini biraz daha basit hale getirmek sorunu çözecektir

SET GLOBAL validate_password_length = 6;
SET GLOBAL validate_password_number_count = 0;

Ancak Güçlü parola doğru çözümdür


0

Bu hata iletisinin, tablonuzdaki saklanan parola ile ilgisi yoktur. Ayrıca yazdığınızda da oluşur (SQL konsolunda)

"şifre seçin ('123456789')"

ya da eğer

"şifre seçin ('A123456789')"

ya da eğer

"şifre seçin ('A! 123456789')"

Yazarsanız

"şifre seçin ('A! a123456789')"

o zaman işe yarayacak. Parolanızı oluşturmak için büyük + küçük harfler, özel karakterler ve rakamlar kullanın.

Bu denetimleri my.cnf dosyasında devre dışı bırakabilirsiniz, ancak güvenlik riskiniz olacaktır!

[mysqld] içinde ekleyin:

validate_password_policy=LOW
validate_password_special_char_count=0
validate_password_length=0
validate_password_mixed_case_count=0
validate_password_number_count=0

0

mysqld'in ubuntu yeni yüklemesinde benim için çalışmadı, bunu eklemek zorunda kaldı: /etc/mysql/mysql.conf.d/mysqld.cnf ya da sunucu başlamazdı (eklenti yüklemede eklenti-load-add yönergesi olmadan eklediğimde doğru zaman)

plugin-load-add=validate_password.so
validate_password_policy=LOW
validate_password_length=8
validate_password_mixed_case_count=0
validate_password_number_count=0
validate_password_special_char_count=0

0

Hızlı bir çözüm bulmanın harika olduğu bazı anlar vardır. Ancak, parola kısıtlamalarını düşürmekten kaçınabilirseniz, gelecekte büyük baş ağrısına sahip olmanızı engelleyebilir.

Bir sonraki bağlantı, https://dev.mysql.com/doc/refman/5.6/en/validate-password.html resmi dokümanlarından , tıpkı sizinki gibi bir örneği ortaya koydukları ve çözdüğü yerdir.

Sahip olduğunuz tek sorun, şifrenizin gerçek minimum politikayı karşılayacak kadar güçlü olmamasıdır (kaldırılması önerilmez). Böylece, örnekte gördüğünüz gibi farklı şifreler deneyebilirsiniz.


0

DEĞİŞKENLERİ GÖSTER 'validate_password%';

resim açıklamasını buraya girin

mysql> GLOBAL AYARLA validate_password.length = 6;

mysql> GLOBAL AYARLA validate_password.number_count = 0;

mysql> GLOBAL AYARLA validate_password.policy = DÜŞÜK;

DEĞİŞKENLERİ GÖSTER 'validate_password%';

resim açıklamasını buraya girin


-1
mysql> SET GLOBAL validate_password.policy = 0;

1
Bu kod OP sorununu çözse de, kodunuzun OP sorununu nasıl ele aldığına dair bir açıklama eklemek en iyisidir. Bu şekilde, gelecekteki ziyaretçiler yayınınızdan bilgi edinebilir ve kendi kodlarına uygulayabilir. SO bir kodlama servisi değil, bilgi kaynağıdır. Ayrıca, yüksek kaliteli ve eksiksiz cevapların kaldırılması daha olasıdır. Bu özellikler, tüm yayınların bağımsız olması şartıyla birlikte, bir platform olarak SO'yu forumlardan ayıran güçlü yönlerinden bazılarıdır. Ek bilgi eklemek ve / veya açıklamalarınızı kaynak belgelerle desteklemek için düzenleyebilirsiniz.
SherylHohman
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.