몇 달 동안 나는 아무런 문제없이 SSH 터널을 통해 로컬 테스트 서버에서 실행되는 MySQL 인스턴스에 연결했습니다. 그럼에도 불구하고 서버가 Sequel Pro의 로그인 시도를 오류로 거부하기 시작했습니다.
액세스가 거부되어 호스트 127.0.0.1에 연결할 수 없습니다.
사용자 이름과 비밀번호를 다시 확인하고 현재 위치에서 액세스 할 수 있는지 확인하십시오.
MySQL은 말했다 : 사용자 'root'@ 'localhost'에 대한 액세스가 거부되었습니다 (암호 사용 : YES)
SSH 터널이 아닌 SSH를 통해 서버에 직접 연결된 경우 터미널에서 로그인 할 수 있습니다. 이 문제는 Sequel Pro에만 국한된 것이 아니며 나 자신도 마찬가지입니다. MySQL Workbench를 통해 연결할 때 사무실의 다른 사람들과 동일한 오류가 발생합니다. 나는 안전을 위해 비밀번호를 재설정 mysqladmin
했지만 문제는 아닙니다.
더 자세히 살펴보기 시작할 때 Sequel Pro에 입력 한 "127.0.0.1"대신 오류가 서버를 "localhost"로보고하는 것을 알았습니다. 친구는 아마도 잘못된 오류 처리 일 것이라고 제안했지만 MySQL에서 localhost와 127.0.0.1의 큰 차이를 감안할 때 이상하게 보입니다.
터널링 문제를 해결하기 위해 root @ %에 대한 액세스 권한을 부여하여 직접 연결할 수 있습니다. 이것은 대부분 테이블 데이터를 보거나 새 데이터베이스를 만들 수 있습니다. 유일한 문제는 사용자를 만들 때 오류가 발생한다는 것입니다.
사용자 'root'@ '%'에 대한 액세스가 거부되었습니다 (암호 사용 : YES)
이상하게도 사용자가 실제로 생성되었으므로 부여와 관련된 문제 일뿐입니다. 다시 말하지만 터미널에서 루트로 로그인하면 무엇이든 할 수 있습니다.
터널 연결 및 (아마도) 권한 부여 명령에 액세스 거부 오류가 발생하는 이유를 아는 사람이 있습니까?
참고로 MySQ는 대부분 기본 설정을 가진 버전 5.6.16이며, MAC OS X 서버 시스템에서 Homebrew를 통해 설치됩니다.
최신 정보
현재 루트에 액세스 권한이 부여 된 호스트 목록은 다음과 같습니다.
mysql> select host,user from mysql.user where user='root';
+----------------+------+
| host | user |
+----------------+------+
| % | root |
| 127.0.0.1 | root |
| ::1 | root |
| localhost | root |
+----------------+------+
4 rows in set (0.00 sec)
내가 이해 한 것처럼 첫 번째 행 ( "%")은 다른 행을 실제로 중복시켜야합니까?
업데이트 2
보조금 문제를 수정했습니다. root @ % 사용자에게는 with grant option
마지막에 추가 권한이있는 모든 권한이 부여되지 않았 으므로 부여 이외의 모든 작업을 수행 할 수 있습니다. 여전히 SSH 터널이 거부되는 이유를 알고 싶습니다.