오류가 발생합니다.
” ‘초기 통신 패킷 읽기, 시스템 오류 : 0’에서 MySQL 서버 연결이 끊어졌습니다.”
내 db를 연결하는 동안.
localhost를 사용하면 모든 것이 잘 작동합니다. 하지만 아래와 같이 라이브 IP 주소를 사용하면 오류가 발생합니다.
mysql_connect("202.131.xxx.106:xxxx", "xxxx", "xxxxx") or die(mysql_error());
답변
여기 누군가 가 방화벽 문제 일 수 있다고 제안합니다.
나는 방금이 문제가 있었고 그것이 내 방화벽이라는 것을 알았습니다. PCTools Firewall Plus를 사용하는데 MySQL에 대한 전체 액세스를 허용하지 않았습니다. 일단 변경하면 괜찮습니다. 도움이되기를 바랍니다.
그게 될까요?
또한 여기 누군가 는 MySQL 서버가 루프백 IP (127.0.0.1 / localhost)에 바인딩되어 있기 때문에 “외부”에서 연결하는 것을 효과적으로 차단할 수 있다고 제안합니다.
이 경우 스크립트를 웹 서버에 업로드하고 (아마도 MySQL 서버를 실행 중일 수 있음) 서버 호스트를 ‘localhost’로 유지해야합니다.
답변
my.cnf라는 mysql 구성 파일을 열고 “bind-address”를 찾습니다. 여기서 설정 (127.0.0.1 또는 localhost)을 라이브 서버 IP (mysql_connect 함수에서 사용중인 IP)로 바꿉니다.
이것은 문제를 확실히 해결할 것입니다.
감사
답변
1) MySQL에 대한 원격 연결을 허용합니다. 파일 수정 :
>sudo nano /etc/mysql/my.cnf
주석 줄 :
#bind-address = 127.0.0.1
MySQL을 다시 시작합니다.
>sudo service mysql restart
2) 원격 접속을위한 사용자를 생성합니다.
>mysql -uroot -p
CREATE USER 'developer'@'localhost' IDENTIFIED BY 'dev_password';
CREATE USER 'developer'@'%' IDENTIFIED BY 'dev_password';
GRANT ALL ON *.* TO 'developer'@'localhost';
GRANT ALL ON *.* TO 'developer'@'%';
3) 제 경우에는 Ubuntu를 사용하여 Windows에서 VirtualBox 컴퓨터로 원격으로 연결해야합니다. 따라서 iptables에서 포트 3306을 허용해야합니다.
>iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
답변
새 슬레이브 서버를 설정할 때이 문제가있었습니다. 슬레이브 서버 IP 주소가 마스터 서버에서 누락되었습니다./etc/hosts.allow
파일 . IP 주소를 추가하고 마스터 서버에 연결할 수있게되었습니다.
hosts.allow
및 hosts.deny
을 사용 하여 액세스를 제어합니다.
답변
이 문제가 있었고 이전 시스템 관리자가 MySQL이 실행중인 포트를 변경했습니다. MySQL Workbench는 기본 3306에 연결을 시도했지만 서버는 20300에서 실행 중이었습니다.
답변
내 경우의 문제는 MySQL이 Linux의 lo에만 바인딩된다는 것입니다. 문제를 해결하기 위해 bind-address = 127.0.0.1 줄을 제거하여 my.cnf (/etc/mysql/my.cnf에 있음)를 편집했습니다.
이렇게하면 mysql이 모든 네트워크 인터페이스에 바인딩 할 수 있습니다.
답변
이 오류는 MySQL Workbench 6.3을 사용하여 Google Cloud SQL에 연결하는 동안 발생했습니다.
약간의 조사 끝에 인터넷 제공 업체가 내 IP 주소를 변경했으며 Cloud SQL에서 허용되지 않는 것으로 나타났습니다.
나는 그것을 승인하고 일하러 돌아갔다.