서버에서는 루트가 mysql을 사용하기 위해 비밀번호가 필요하지 않도록 설정했습니다(자격 증명은 ~/.mylogin.cnf에 있음). 이제 SSH 터널을 통해 원격으로 mysql에 연결하고 싶고 비밀번호를 입력할 필요가 없습니다.
# open the tunnel (I'm using local port 3305 because 3306 is already taken for some reason)
ssh server -L 3305:127.0.0.1:3306 -N
# now try to connect
mysql -h 127.0.0.1 -P 3305 -u root
그러나 이것은 작동하지 않습니다. 오류는 다음과 같습니다.오류 1045(28000): 사용자 "root"@"localhost"에 대한 액세스가 거부되었습니다(비밀번호 사용: NO).
내가 뭘 잘못했나요?
답변1
mysql 자격 증명을 설정했습니다.원격 서버그리고 당신은 mysql 클라이언트를 실행하고 있습니다현지의.
~/.mylogin.cnf에서 포트 3305를 사용하여 localhost에 대한 mysql 인스턴스를 설정하십시오.
답변2
명령 끝에 -p를 추가하여 비밀번호 프롬프트를 표시할 수도 있습니다.
답변3
루트로 SSH 연결을 열 수 있습니까? 일부 Linux 배포판은 기본적으로 루트 SSH 액세스를 제한합니다. /etc/ssh/sshd_config
파일의 줄 확인
PermitRootLogin yes
PasswordAuthentication yes