로컬 호스트 대 127.0.0.1: MySQL 권한의 흥미로운 사례
MySQL로 작업할 때 겉보기에 혼란스러워 보이는 차이에 직면하는 것이 일반적입니다. 'localhost'와 '127.0.0.1'이라는 용어 사이에 있습니다. 이러한 차이는 데이터베이스 시스템 내의 사용자에게 권한을 부여하는 맥락에서 나타납니다.
설명하기 위해 다음 예를 고려하십시오.
$ mysql -u root -h 127.0.0.1 -e 'show tables' created_from_host; +-----------------------------+ | Tables_in_created_from_host | +-----------------------------+ | test | +-----------------------------+ $ mysql -u root -h localhost -e 'show tables' created_from_host; ERROR 1049 (42000): Unknown database 'created_from_host'
이러한 불일치는 MySQL이 호스트 이름(예: 'localhost') 및 소켓을 통해 이루어진 연결(예: '127.0.0.1'). 호스트 이름이 지정되지 않거나 'localhost'로 연결할 때 사용되는 소켓 방식은 로컬 소켓을 활용하여 데이터베이스 서버와 통신합니다.
이러한 구별은 사용자 권한 영역에서 중요합니다. 다음은 '루트'에 대해 모든 호스트의 모든 데이터베이스에 대한 모든 권한을 부여하는 방법에 대한 간단한 가이드입니다:
루트 계정을 사용하여 MySQL에 연결:
$ mysql -u root -p
다음 명령을 실행하여 권한을 부여하세요. 권한:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
변경 사항이 적용되도록 권한을 플러시합니다.
FLUSH PRIVILEGES;
다음 단계에 따라 다음을 수행할 수 있습니다. 해당 '루트'는 'localhost'를 통해 연결되었는지 여부에 관계없이 모든 호스트에서 데이터베이스 시스템에 무제한으로 액세스할 수 있습니다. '127.0.0.1'.
위 내용은 MySQL이 권한을 부여할 때 'localhost'와 '127.0.0.1'을 다르게 처리하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!