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
나중에 테이블의 모든 사용자가 거부됩니다 . 내가 뭘 할 것은 에서이 항목에 대한 데이터베이스와 모양 테이블; 발견되면 삭제하고 권한을 삭제하십시오.mysqldump
mysql
User
자세한 내용은 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_db
monty가 로컬 호스트에서 연결할 때에서 만든 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
비밀번호를 잘못 입력하지 않았는지 확인한 후에도 비슷한 문제가 발생하여 로그인 할 수 없습니다. 두 단계 아래에서 내 문제가 해결되었습니다.
- 테스트 데이터베이스 삭제
- 익명 사용자 삭제
참고 URL : https://stackoverflow.com/questions/1412339/cannot-log-in-with-created-user-in-mysql
'developer tip' 카테고리의 다른 글
Android 애플리케이션의 TextView에서 텍스트의 첫 글자를 대문자로 표시하는 방법 (0) | 2020.11.09 |
---|---|
UICollectionReusableView 메서드가 호출되지 않음 (0) | 2020.11.09 |
JPA 대 Spring JdbcTemplate (0) | 2020.11.09 |
파이썬 : 나만의 연산자 정의? (0) | 2020.11.09 |
UITableview reloaddata with animation (0) | 2020.11.09 |