CentOS (v 7.3.1611) 상자의 포트 3306에서 실행중인 MariaDB 데이터베이스 (v 5.5.52)에 연결하려고합니다. 보안상의 이유로 서버의 포트 3306이 방화벽으로 보호됩니다 ( telnet mysite.com 3306
시간 초과).
구성된 연결로 서버에 ssh 할 수 있기 때문에 : ssh projectx
그런 다음 데이터베이스에 연결하십시오. mysql -u remote -p use staff;
Sequel Pro에서이 연결이 랩톱에서 연결될 것으로 예상합니다.
하지만이 오류 메시지가 나타납니다.
호스트 127.0.0.1에 연결할 수 없거나 요청 시간이 초과되었습니다. MySQL은 말했다 : '초기 통신 패킷을 읽는 중'에서 MySQL 서버와의 연결이 끊어졌습니다. 시스템 오류 : 0
사용자에게는 다음과 같은 권한이 있습니다. show grants for 'remote'@'%'; +----------------------------------------------------------------------------------+ | Grants for remote@% | +----------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'remote'@'%' IDENTIFIED BY PASSWORD 'redacted' | | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON `staff`.* TO 'remote'@'%' | +----------------------------------------------------------------------------------+
my.cnf의 [mysqld] 섹션에 있습니다. bind-address = *
/var/log/mariadb/mariadb.log에 기록 된 오류 없음
@'%'
SSH 연결을 사용하는 경우 원격 사용자를 정의 할 필요가 없습니다 . 또한 기본적으로 로컬 컴퓨터에서 연결하기 때문에 127.0.0.1 이외의 인터페이스를 바인딩 할 필요가 없습니다.
어쨌든, bind-address
해야 127.0.0.
귀하의 경우 (대한 로컬 호스트에서 연결). MySQL이 필요한 모든 인터페이스에 바인딩하도록하려면 0.0.0.0
(하지만 다시 말하지만 ssh 인 경우에는 필요하지 않습니다).
또한 MySQL이 로컬 유닉스 소켓이 아닌 TCP를 사용하도록 구성되어 있는지 확인하십시오. 머신에 ssh-ing을 실행하고 mysql -h 127.0.0.1 ...
. 이것이 작동하지 않고 작동한다면 mysql -h localhost
, 서버는 유닉스 소켓을 사용하도록 설정됩니다.
원격 sshd
데몬은 포트 포워딩을 허용하도록 설정되어야합니다. 다음에 다음을 추가하십시오 /etc/ssh/sshd_config
.
AllowTcpForwarding yes
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다