>  기사  >  데이터 베이스  >  다른 IP에서 mysql 데이터베이스에 접근할 수 없는 문제 해결

다른 IP에서 mysql 데이터베이스에 접근할 수 없는 문제 해결

巴扎黑
巴扎黑원래의
2017-09-04 15:54:071463검색

이 글에서는 주로 다른 IP에서 MySQL 데이터베이스에 접근할 수 없는 문제에 대한 해결 방법을 예제 코드를 통해 자세히 소개합니다. 학습이나 작업이 필요한 모든 사람에게 확실한 참고 학습 가치가 있습니다. 아래 내용을 따라 함께 배워보세요.

머리말

아직도 아까 말씀드렸던 프로젝트입니다. 이제 환경이 준비되었습니다. 프로젝트 준비 및 검증 단계에서 상위 애플리케이션에서 인증 접근 애플리케이션에 들어갔습니다. 대기 상태에 있으며 올바른 사용자 이름과 비밀번호를 입력했지만 액세스할 수 없습니다. 데이터베이스 연결에 접근할 수 있는 방법이 없는 것 같습니다.

mysql 배포 후 포트는 일반적으로 3306입니다. 3306 포트에 ping 및 telnet을 시도하여 IP에 ping이 가능한 것을 확인했지만 3306 포트는 telnet할 수 없으며 다음과 같은 오류가 발생합니다.


ERROR 1130: Host *.*.*.* is not allowed to connect to MySQL

Look 이 오류를 보고 온라인으로 확인해 보니 기본적으로 해결 방법이 여러 가지가 있는 것 같은데, 왜 구체적으로 글을 써야 합니까?

답은 다음과 같습니다. mysql 5.6에 대한 해결 방법은 인터넷에 많이 있습니다. 5.7에서 이 오류에 대한 해결 방법은 다음과 같습니다.

1 처음으로 mysql에 로그인한 후 다음을 수행해야 합니다. 시간에 맞춰 루트 비밀번호를 변경하세요. 여기는 5.6입니다. 5.7과 한 가지 차이점이 있습니다. 즉, 5.6의 비밀번호 필드는 비밀번호입니다. 그러나 버전 5.7에서는 이 필드가 취소되고 인증_문자열 필드로 대체됩니다.

올바른 수정 방법은 다음과 같습니다.


update user set authentication_string=password("xxxx") where user = "root";
flush privileges;

2. 수정 후 use mysql 명령을 사용하여 mysql 라이브러리로 전환합니다. 이 mysql 라이브러리는 실제로 mysql에 존재하며 일부 db 관련 정보를 저장합니다. 정보 도서관.

명령: mysql 사용;use mysql;

3.找到users表,执行如下命令:


grant all privileges on *.* to 'root'@'%' identified by 'JLwg!2017' with grant option;

网上关于这块的修改方法很多,应该一共有4种,我用的是其中一种。

这个命令的意思是,修改root用户的访问权限,让所有ip都可以访问这个用户,这样一来的话,我们的应用就可以从外部ip访问这个mysql了,不然只有localhost可以访问,很不方便。

4.最后执行flush privileges;

3 사용자 테이블을 찾아 다음 명령을 실행합니다.

🎜rrreee🎜이를 온라인으로 수정할 수 있는 방법은 여러 가지가 있습니다. 전체적으로 나는 그 중 하나를 사용합니다. 🎜🎜이 명령의 의미는 모든 IP가 이 사용자에 액세스할 수 있도록 루트 사용자의 액세스 권한을 수정하는 것입니다. 이러한 방식으로 우리 애플리케이션은 외부 IP에서 이 mysql에 액세스할 수 있습니다. 그렇지 않으면 localhost만 액세스할 수 있습니다. 매우 불편합니다. 🎜🎜4. 마지막으로 flushprivileges; 명령을 실행하여 MySQL 서비스를 다시 시작하면 애플리케이션이 성공적으로 로그인됩니다🎜🎜🎜🎜🎜

위 내용은 다른 IP에서 mysql 데이터베이스에 접근할 수 없는 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.