내가 만들고 싶은 새로운 사용자에서 mysql syntax:
create user 'demo'@'localhost' identified by 'password';
하지만 그것은 오류를 반환합니다:
비밀번호 만족하지 않고 현재 정책의 요구 사항입니다.
가 많은 비밀이지만 그't work. 어떻게 이 문제를 해결할 수 있을까요?
기 때문에 당신의 암호입니다. 당신이 볼 수 있습니다비밀번호 확인 구성을 측정사용하여 다음에서 쿼리를 MySQL 클라이언트:
sql 쇼 같은 변수를'validate_password%';
할 수 있습니다 또는 암호 정책 설정 레벨 낮은,예를 들어:
ini 설정 글로벌 validate_password_length=6; 설정 글로벌 validate_password_number_count=0;
을 확인할MySQL 설명서.
참고:이 되지 않을 수도 있습니다 안전한 솔루션입니다. 하지만 작업하는 경우에 테스트 환경에 필요한 빠른 해결하고는't even care 보안에 대한 설정입니다. 이것은 빠른 솔루션입니다.
동일한 문제는 나에게 일어났을 때 나는 달"mysql_secure_installation"그리고 수정한 암호 보안 수준을 보'중'.
나는 무시 오류를 실행하여 다음 사항:
mysql -h localhost -u root -p
mysql>uninstall plugin validate_password;
확인시 플러그인이"validate_password"필요한 경우입니다.
실행한 후 명령sudo mysql_secure_installation
.
sudo mysql
를 입력 mysql 프롬프트가 표시됩니다.사용자 선택,authentication_string,플러그인 호스트에서 mysql.사용자;
을 확인에 대한 사용루트 할 수 있습니다.플러그인으로auth_socket*.플러그인을 제거 validate_password;
드롭하는 권한을 실행하기 전에
이ALTER 사용자는'루트'@'localhost'식별 mysql_native_password 으'암호를';
를 변경해야 한비밀번호하는 강력한 암호입니다.참고:이 링크 https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04 자세한 도움말
당신이 변화하는 MySQL 암호 정책을 낮습니다.
루트로 로그인
mysql -u root -p
변경사항
SET GLOBAL validate_password_policy=LOW;
나
SET GLOBAL validate_password_policy=0;
exit
구
다시 시작 MySQL 서비스
sudo service mysqld restart
당신이 MySQL 의 암호를 변경사항을 저=0/매체=1/높은=2.
SET GLOBAL validate_password_policy=0;
SET GLOBAL validate_password_policy=1;
SET GLOBAL validate_password_policy=2;
내 생각에 설정"validate_password_policy"하려면**"저"**거나 제거하면"암호 확인 플러그인이"되지 않은 다른 일을 하는 것입니다. 해야 합니다 결코 타협안의 데이터베이스(unless you don't 이 정말로 걱정). 내가 왜 사람들은 심지어 이러한 옵션을 제안할 때 당신은 단순히 당신이 선택할 수 있는 좋은 암호입니다.
이 문제를 극복하기 위하여,내가 실행에서 다음 명령을 mysql:표시 같은 변수를'validate_password%'에 의해 제안@JNevill. 나"validate_password_policy"설정된 매체와 함께,다른 것들입니다. 스크린샷은 다음과 같습니다 실행:암호 확인사항
결과는 것은 자명하다. 에 대한 올바른 암호(경우 암호 정책 설정하면 중간):
-암호해야 합 8 자 이어야 -혼합된 사건 수가 1(적어도 1 편지에서 작은 1 편지에서 cap) -자 수가 1 -최소의 특별한 문자 수 1
그래서 올바른 암호를 준수해야 합니다. 의 예에는 올바른 암호를 위해 위의 규칙을 어쩌면:
-Student123@ -NINZAcoder$100 -demoPass#00
선택할 수 있습니다 어떤 조합으로 만족하는 정책입니다.
다른"validate_password_policy"할 수 있는 단순히 값을 다른 옵션 선택하신 비밀번호에 따라(I haven't 도"고").
Step1:check your 기본 플러그인 인증
SHOW VARIABLES LIKE 'default_authentication_plugin';
단계 2:veryfing 비밀번호 유효성 검증 요구사항
SHOW VARIABLES LIKE 'validate_password%';
3 단계를 설정하고 사용자와 올바른 암호를 요구사항
CREATE USER '<your_user>'@'localhost' IDENTIFIED WITH '<your_default_auth_plugin>' BY 'password';
MySql8 사용할 수 있는 다음과 같은 스크립트:
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;
나는 같은 문제를 가지고 있었습니다 그리고 그 대답은 바로 앞에 당신을 기억할 때 실행 스크립트 설치하는 동안 다음과 같 mysql
<코드>sudo mysql_secure_installation</드>
이 어딘가에 당신을 선택하는 암호의 유형은 당신이 선택한
거기에는 세 가지 수준의 비밀번호 확인사항:
낮은 길이>=8 중간 길이>=8,숫자 혼합,사례,그리고 특별한 문자 강력한 길이>=8,숫자 혼합,사건,특수 문자와 사전에 파일
십시오 입력 0=낮은 1=매체고 2=강:
하게 암호하여 동일한 정책
여기에 몇 가지 견본 예제를 위해 귀하의 비밀번호:
에 대한 유형 0:<코드>abcdabcd</드>
유형 1:<코드>abcd1234</드>
유형 2:<코드>ancd@1234</드>
에 대한 Laravel 사용자가 이러한 문제가 발생 MySQL8.0.x,추가
'드'=>[ 'ONLY_FULL_GROUP_BY', 'STRICT_TRANS_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'ERROR_FOR_DIVISION_BY_ZERO', 'NO_ENGINE_SUBSTITUTION', ],
귀하의 database.php 파일은 아래와 같:
``
//database.php
'연결'=>[
'mysql'=>[ '드라이버'=>'mysql', '스'=>env('DB_HOST', '127.0.0.1' ), '포트'=>env('DB_PORT', '3306' ), '데이터베이스'=>env('DB_DATABASE','위조'), '사용자 이름'=>env('DB_USERNAME','위조'), '암호를'=>env('DB_PASSWORD', '' ), 'unix_socket'=>env('DB_SOCKET', '' ), 'charset'=>'utf8mb4', '정렬'=>'utf8mb4_unicode_ci', 'prefix'=> '', '엄격한'=>true, '엔진'=>null, '드'=>[ 'ONLY_FULL_GROUP_BY', 'STRICT_TRANS_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'ERROR_FOR_DIVISION_BY_ZERO', 'NO_ENGINE_SUBSTITUTION', ], ], ], `` 그것을 고정합니다.
문제는 당신의 비밀번호 늘 암호와 일치합니다. 할 수 있는 간단한 아래 단계에 따라 문제를 해결합니다.
당신은 단순히오 비밀번호 확인 구성 행렬 입력하여 아래 코드입니다.
mysql-> SHOW VARIABLES LIKE 'validate_password%';
그런 다음에서 매트릭스가 아래에 발견할 수 있는 변수에 해당하는 값과에서 당신은 거기에있을 확인하는validate_password_length
,validate_password_number_count
과validate_password_policy
.
체크인 값을 사용한 변수라고 합니다. 는지 확인하validate_password_length
넘지 않아야 합니다 6. 당신은 설정할 수 있는 6 를 사용하여 아래 코드입니다.
SET GLOBAL validate_password_length = 6;
그 후에 당신은 설정할 필요가validate_password_number_count
은 0 입니다. 그것을 사용하여 아래 코드입니다.
SET GLOBAL validate_password_number_count = 0;
마지막으로 당신은 당신을 설정하는validate_password_policy
에서저
. 데는중간
또는고
늘 허용의 더 적은 안전한 암호를 암호화합니다. 설정하는저
는 아래 코드입니다.
SET GLOBAL validate_password_policy=LOW;
이 오류 메시지 함께 할 수 없이 저장된 비밀번호에 있습니다. 그것은 또한 oc cures 이 경우 당신은 유형(에 SQL 콘솔)
"선택 비밀번호('123456789')"
는 경우 또는
"비밀번호를 선택하십시오('A123456789')"
는 경우 또는
"비밀번호를 선택하십시오('다.123456789')"
는 경우에 당신은 유형
"비밀번호를 선택하십시오('다.a123456789')"
그것은 작동합니다. 그냥 사+작은 편지,특수 문자와 숫자의하여 암호를 만듭니다.
비활성화할 수 있습에서 이러한 검사 my.cnf,하지만 당신은 보안 위험!
에서[mysqld]add:
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
지 않았't work for me 에서 우분투 설치한 mysqld,추가했다:/etc/mysql/mysql.conf.d/mysqld.cnf 또는 서버지't 시작(추측 플러그인지 않았't 드에서 올바른 시간 때 나는 단순히 추가하지 않고 플러그인-로드-추가 directive)
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