원격 액세스 활성화 (Grant) 홈 / 자습서 / Mysql / 원격 액세스 활성화 (Grant) 원격 시스템에서 mysql 서버에 연결하려고하면 아래와 같이 오류가 발생하면이 문서가 도움이됩니다.
오류 1130 (HY000) : '1.2.3.4'호스트는이 MySQL 서버에 연결할 수 없습니다
mysql 설정 변경
mysql 설정 파일 편집으로 시작
vim /etc/mysql/my.cnf
다음 줄을 주석으로 처리하십시오.
#bind-address = 127.0.0.1
#skip-networking
스킵 네트워킹 라인을 찾지 못하면 추가하고 주석 처리하십시오.
mysql 서버를 다시 시작하십시오.
~ /etc/init.d/mysql restart
GRANT 권한 변경
위의 변경 후에도 원격 액세스 권한을 얻지 못하지만 모든 데이터베이스에 액세스 할 수있는 것은 아닙니다.
기본적으로 사용중인 mysql 사용자 이름과 비밀번호는 로컬로 mysql-server에 액세스 할 수 있습니다. 따라서 권한을 업데이트해야합니다.
모든 머신에서 액세스하려면 아래와 같은 명령을 실행하십시오. (교체 USERNAME
및 PASSWORD
자격 증명에 의해.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
다음과 같은 명령을 실행하여 특정 IP에서 액세스하십시오. (교체 USERNAME
및 PASSWORD
자격 증명에 의해.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
1.2.3.4를 IP로 바꿀 수 있습니다. 위의 명령을 여러 번 실행하여 여러 IP의 액세스 권한을 부여 할 수 있습니다.
별도의 USERNAME
& PASSWORD
원격 액세스를 지정할 수도 있습니다.
다음을 통해 최종 결과를 확인할 수 있습니다.
SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";
마지막으로 다음을 실행해야 할 수도 있습니다.
mysql> FLUSH PRIVILEGES;
연결 테스트
터미널 / 명령 줄에서 :
mysql -h HOST -u USERNAME -pPASSWORD
mysql 쉘을 얻는다면 show 데이터베이스를 실행하는 것을 잊지 마십시오. 원격 컴퓨터에서 올바른 권한이 있는지 확인하십시오.
보너스 팁 : 액세스 취소
실수로 사용자에게 액세스 권한을 부여한 경우에는 취소 옵션이 더 좋습니다.
다음은 모든 컴퓨터에서 USERNAME에 대한 모든 옵션을 취소합니다.
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';
Following will revoke all options for USERNAME from particular IP:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';
Its better to check information_schema.user_privileges table after running REVOKE command.
REVOKE 명령을 실행 한 후 USAGE 권한이 표시되면 괜찮습니다. 전혀 특권이없는 것만 큼 좋습니다. 취소 할 수 있는지 확실하지 않습니다.