이 글에서는 주로 다른 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;
🎜rrreee🎜이를 온라인으로 수정할 수 있는 방법은 여러 가지가 있습니다. 전체적으로 나는 그 중 하나를 사용합니다. 🎜🎜이 명령의 의미는 모든 IP가 이 사용자에 액세스할 수 있도록 루트 사용자의 액세스 권한을 수정하는 것입니다. 이러한 방식으로 우리 애플리케이션은 외부 IP에서 이 mysql에 액세스할 수 있습니다. 그렇지 않으면 localhost만 액세스할 수 있습니다. 매우 불편합니다. 🎜🎜4. 마지막으로
flushprivileges;
명령을 실행하여 MySQL 서비스를 다시 시작하면 애플리케이션이 성공적으로 로그인됩니다🎜🎜🎜🎜🎜위 내용은 다른 IP에서 mysql 데이터베이스에 접근할 수 없는 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!