MySQL 호스트 열에서 %는 무엇을 의미할까요?
MySQL에서 localhost는 같은 머신(로컬 서버)에서만 접속이 가능하다는 것을 의미합니다. 반면 %는 와일드카드 문자로, 원격 호스트(remote host)를 포함한 모든 곳에서 접속이 가능함을 나타냅니다.
사용자 비밀번호 변경 문법
사용자 비밀번호를 변경하는 기본 문법은 다음과 같습니다.
SET PASSWORD FOR '사용자이름'@'localhost' = '새비밀번호';
1단계: 현재 사용자와 호스트 확인
비밀번호를 변경하기 전에 먼저 MySQL.user 테이블에서 사용자와 호스트 정보를 확인해야 합니다. 다음 쿼리를 실행하세요.
mysql> select user,host from MySQL.user;
실행 결과 예시는 다음과 같습니다.
+------------------+-----------+ | user | host | +------------------+-----------+ | Bob | % | | Manish | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | @UserName@ | localhost | | Adam Smith | localhost | | James | localhost | | John | localhost | | John Doe | localhost | | User1 | localhost | | am | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | +------------------+-----------+ 16 rows in set (0.01 sec)
위 결과에서 host 열이 %인 사용자는 어디서든 접속 가능하고, localhost로 지정된 사용자는 로컬 머신에서만 접속할 수 있습니다.
2단계: 비밀번호 변경하기
이제 'John'이라는 사용자의 비밀번호를 변경해 보겠습니다. 다음 쿼리를 실행하세요.
mysql> SET PASSWORD FOR 'John'@'localhost' ='John123456'; Query OK, 0 rows affected (0.35 sec)
3단계: 권한 새로고침(flush privileges)
비밀번호 변경 후에는 권한 정보를 갱신해야 변경 사항이 즉시 적용됩니다. 다음 명령어를 실행하세요.
flush privileges;
이렇게 하면 MySQL에서 호스트 열의 % 의미를 이해하고, 사용자 비밀번호를 안전하게 변경할 수 있습니다.