이유 분석:
호스트 '로컬'은 이 MySQL 서버에 연결할 수 없습니다. 일반적인 원격 권한 문제입니다.
문제의 핵심:
MySQL은 원격 로그인 권한을 허용하지 않습니다. Linux인지 Windows인지 여부에 따라 서버가 사용하는 시스템 종류에 따라 솔루션이 다릅니다. 온라인으로 검색하면 문제 해결에 대한 많은 정보가 있습니다.
해결책:
MySQL 원격 로그인 계정을 여는 데는 두 가지 주요 단계가 있습니다.
1. 서버의 방화벽이 포트 3306을 차단하지 않는지 확인하세요.
MySQL의 기본 포트는 3306입니다. 방화벽이 포트 3306을 차단하지 않는지 확인해야 합니다. 그렇지 않으면 포트 3306을 통해 원격으로 MySQL에 연결할 수 없습니다.
MySQL 설치 시 다른 포트를 지정하셨다면, 방화벽에서 MySQL용으로 지정하신 포트번호를 열어주세요.
서버에 방화벽을 설정하는 방법을 모르는 경우 서버 관리자에게 문의하세요.
2. MySQL 사용자에게 원격 연결을 허용하고 권한을 부여하는 기능을 추가합니다.
1) 먼저 루트 계정으로 MySQL에 로그인합니다.
Windows 호스트에서 시작 메뉴를 클릭하고 실행한 후 "cmd"를 입력하고 콘솔에 들어가서 MySQL bin 디렉터리를 입력하고 다음 명령을 입력합니다.
Linux 호스트의 명령 프롬프트에 다음 명령을 입력합니다.
다음과 같이 코드 코드를 복사합니다 .
> MySQL -uroot -p123456
123456은 루트 사용자의 비밀번호입니다.
2) 원격 로그인 사용자를 생성하고 권한을 부여합니다.
다음과 같이 코드 코드를 복사합니다 .
> '123456'으로 식별되는 ted@'123.123.123.123'에게 discuz.*에 대한 모든 권한을 부여합니다.
위의 명령문은 discuz 데이터베이스의 모든 권한이 사용자 ted에게 부여되고, 사용자 ted는 IP 주소 123.123.123.123에서 원격으로 로그인할 수 있으며, 사용자 ted의 비밀번호는 123456으로 설정되어 있음을 나타냅니다.
모든 매개변수를 하나씩 분석해 보겠습니다.
모든 권한은 지정된 사용자에게 모든 권한을 부여하는 것을 의미합니다. 선택, 삽입, 업데이트, 삭제, 생성, 삭제 등과 같은 특정 권한을 부여하여 대체할 수도 있습니다. 특정 권한은 "," 반으로 구분됩니다. 너비 쉼표.
discuz.*는 위의 권한이 어떤 테이블에 대한 것인지를 나타내며, discuz는 데이터베이스를 의미하며, 다음의 *는 모든 테이블에 대한 권한이 "*.*"임을 유추할 수 있다. 모든 데이터베이스의 테이블에 대한 권한은 "*.*"이며 특정 데이터베이스의 모든 테이블에 대한 권한은 "데이터베이스 이름.*"이고 특정 데이터베이스의 특정 테이블에 대한 권한은 "데이터베이스 이름.테이블 이름"입니다. .
ted는 인증하려는 사용자를 나타냅니다. 이 사용자는 기존 사용자이거나 존재하지 않는 사용자일 수 있습니다.
123.123.123.123은 원격 연결을 허용하는 IP 주소를 나타냅니다. 연결의 IP 주소를 제한하지 않으려면 "%"로 설정하면 됩니다.
123456은 사용자의 비밀번호입니다.
위 명령문을 실행한 후 다음 명령문을 실행하면 즉시 적용됩니다.
다음과 같이 코드 코드를 복사합니다 .
>플러시 권한;