MySQL에서 모든 호스트의 루트(Root) 접근 허용하기
MySQL에서 모든 호스트로부터 루트(root) 계정 접근을 허용하려면 먼저 USE 명령어를 사용하여 데이터베이스를 mysql로 변경해야 합니다. 이 데이터베이스에는 사용자 계정과 호스트 정보가 저장되어 있기 때문입니다.
1단계: USE 명령어로 mysql 데이터베이스 선택하기
USE 명령어의 기본 문법은 다음과 같습니다.
USE 데이터베이스명;
이제 MySQL에 미리 정의되어 있는 mysql 데이터베이스를 선택해 보겠습니다.
mysql> use mysql;
Database changed
위와 같이 "Database changed" 메시지가 출력되면 데이터베이스 변경이 성공적으로 완료된 것입니다.
2단계: host 값을 '%'로 변경하는 쿼리 실행하기
데이터베이스 선택이 완료되었다면, 다음 쿼리를 실행하여 모든 호스트에서 루트 접근을 허용할 수 있습니다.
mysql> UPDATE user set host='%' where host='localhost';
Query OK, 6 rows affected (0.19 sec)
Rows matched: 6 Changed: 6 Warnings: 0
이 쿼리는 user 테이블에서 host 값이 'localhost'인 모든 계정의 호스트를 '%'로 변경합니다. 여기서 %는 임의의 호스트, 즉 모든 외부 호스트에서의 접속을 의미하는 와일드카드입니다.
쿼리 실행 결과 "6 rows affected"가 출력된 것을 확인할 수 있으며, 이는 6개의 사용자 레코드가 성공적으로 업데이트되었음을 의미합니다.
주의사항
루트 계정의 접근을 모든 호스트(%)로 개방하면 보안상 매우 위험할 수 있습니다. 외부에서 누구나 루트 자격 증명만 있으면 데이터베이스에 접근할 수 있게 되므로, 반드시 강력한 비밀번호를 설정하고, 가능하다면 방화벽으로 접근 가능한 IP를 제한하거나 특정 호스트만 허용하는 것을 권장합니다. 또한 변경 사항을 적용하려면 FLUSH PRIVILEGES; 명령어를 실행하거나 MySQL 서버를 재시작해야 할 수 있습니다.