developer tip

mysql에서 생성 된 사용자로 로그인 할 수 없습니다.

copycodes 2020. 11. 9. 08:13
반응형

mysql에서 생성 된 사용자로 로그인 할 수 없습니다.


이 명령 사용

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';

다음으로 로그인을 시도합니다.

 mysql -u brian -ppassword

오류는 다음과 같습니다.

ERROR 1045 (28000): Access denied for user 'brian'@'localhost' (using password: YES)

나는 이것을 루트로하고 있으며 권한을 플러시하려고했습니다.

나는 수많은 사용자들과 이것을 시도했지만 작동하지 않는 것 같습니다. 암호없이 사용자를 만들 수 있으며 로그인이 작동합니다. 명령 줄 및 phpmyadmin에서

또한 사용자가 mysql.user에 있는지 확인하십시오.

브라이언 쇼 보조금 표시 :

| GRANT ALL PRIVILEGES ON *.* TO 'brian'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |

사용자 테이블의 기본 사용자 중 하나가 인 경우이 영구적 인 MySQL 문제가있을 수 있으며 '' @ localhost, 이로 인해 localhost나중에 테이블의 모든 사용자가 거부됩니다 . 내가 뭘 할 것은 에서이 항목에 대한 데이터베이스와 모양 테이블; 발견되면 삭제하고 권한을 삭제하십시오.mysqldumpmysqlUser

자세한 내용은 https://dev.mysql.com/doc/refman/5.5/en/connection-access.html을 참조 하십시오 .

주어진 사용자 이름에 대해 서버가 연결과 일치하는 항목을 찾으려고 할 때 해당 사용자를 명시 적으로 지정하는 모든 행이 먼저 사용된다고 생각하는 것은 일반적인 오해입니다. 이것은 사실이 아닙니다. 앞의 예에서는 jeffrey에 의한 h1.example.net의 연결이 먼저 사용자 열 값으로 'jeffrey'를 포함하는 행이 아니라 사용자 이름이없는 행과 일치하는 것을 보여줍니다. 결과적으로 jeffrey는 연결할 때 사용자 이름을 지정 했음에도 불구하고 익명 사용자로 인증됩니다.


이것은 익명 사용자로 인해 발생하는 문제입니다. MySQL을 설치하면 항상 실행합니다.

shell> mysql_secure_installation 

루트 암호 설정 / 변경, 익명 사용자 제거, 원격 루트 로그인 허용 안 함, 테스트 데이터베이스 제거를 선택합니다. 이렇게하면 익명 사용자가 제거되고 설치가 보호됩니다. 그것은 또한 당신이 가진 문제를 해결해야합니다.


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

여기에 제공된 솔루션 중 어느 것도 작동하지 않았습니다. 많은 오류와 시도 끝에 나는 암호에 특수 문자가 있음을 깨달았습니다. 특수 문자없이 비밀번호를 변경하면 문제가 해결되었습니다.


mysql 문서는 다음과 같이 말합니다. ( http://dev.mysql.com/doc/refman/5.1/en/adding-users.html에서 ) :

계정 중 두 개는 사용자 이름 monty과 암호를가 some_pass집니다. 두 계정 모두 모든 작업을 수행 할 수있는 모든 권한을 가진 수퍼 유저 계정입니다. 'monty'@'localhost'은 로컬 호스트에서 접속을 할 경우 계정에만 사용할 수 있습니다. 'monty'@'%'계정이 사용 '%'이 호스트에서 연결하여 사용할 수 있도록, 호스트 부분에 대한 와일드 카드.

monty어디에서나 .NET으로 연결할 수 있으려면 두 계정이 모두 있어야합니다 monty. localhost 계정이 없으면 mysql_install_dbmonty가 로컬 호스트에서 연결할 때에서 만든 localhost의 익명 사용자 계정 이 우선합니다. 결과적으로 monty익명 사용자로 취급됩니다. 그 이유는 익명 사용자 계정이 계정보다 더 구체적인 Host열 값을 가지 'monty'@'%'므로 사용자 테이블 정렬 순서가 더 일찍 나오기 때문입니다.

이를 염두에두고 'brian'@'localhost'동일한 권한을 가진 사용자 를 생성하는 것이 좋습니다 .


보조금 명세서에서 브라이언에 대한 인용문을 잊어 버렸습니다. 다음과 같이 시도하십시오.

GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';


러셀 실바가 맞는 것 같아요 ...

사용자를 만들었습니다.

CREATE USER 'username'@'%' PASSWORD='userpassword';

하지만이 계정으로 로그인 할 수 없습니다.

ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)

그래서 '%'를 'localhost'로 변경하는 것을 제외하고는 동일한 사용자 이름으로 사용자를 생성했고 마침내 'username'으로 로그인 할 수있었습니다. 그래도 나에게는 이상합니다.


나는 미래의 검색 자들에게 또 다른 가능성을 제공하기 위해 계정을 만들었습니다.

숙련 된 사용자에게는 분명한 일이지만 내 비밀번호는 무작위로 생성되어 "\"가 포함되어 있습니다. 그 캐릭터가 문제를 일으키는 것 같다는 사실을 알게 될 때까지 잠시 걸렸습니다.


제 경우에는 "SSL : REQUIRE SSL"(phpmyadmin에서)을 클릭했기 때문입니다. "REQUIRE NONE"으로 변경하면 로그인 할 수 있습니다.


다른 호스트에서 연결할 수도 있습니다. 그러면 localhost 익명 사용자가 무시되고이를 제거하고 권한을 삭제할 수 있습니다.

mysql -u brian -ppassword -h 'other_host_than_localhost'

17.04로 업그레이드 한 후 Ubuntu에서 실행되는 Maria DB에 연결하려고 시도하는 비슷한 문제가 발생했습니다.

기본값은 localhost, 127.0.0.1에서만 수신하는 것입니다.

MySQL / Maria가 사용 가능한 모든 포트와 인터페이스에서 수신하도록하려면 bind-address = 0.0.0.0을 명시 적으로 지정해야했습니다. 나는 파일의 끝에 다음 행을 추가 /etc/mysql/my.cnf, 즉

...
[client-server]

# Import all .cnf files from configuration directory

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/
bind-address=0.0.0.0

그때...

sudo /etc/init.d/mysql restart 

비밀번호를 잘못 입력하지 않았는지 확인한 후에도 비슷한 문제가 발생하여 로그인 할 수 없습니다. 두 단계 아래에서 내 문제가 해결되었습니다.

  1. 테스트 데이터베이스 삭제
  2. 익명 사용자 삭제

참고 URL : https://stackoverflow.com/questions/1412339/cannot-log-in-with-created-user-in-mysql

반응형