중앙 데이터베이스에 연결하는 다른 서버가 많기 때문에 DNS 이름 확인을 비활성화하려고 합니다. DNS 확인은 느리며 다음과 같이 비활성화할 수 있습니다.
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
port=3412
max_connections=500
skip-name-resolve
그러나 여전히 localhost를 통해 연결할 수 있는데 이는 이해가 되지 않습니다.
mysql -h localhost -u root -p -P 3412
나는 약간의 연구를 해왔다.여기:
Skip-name-resolve를 사용하기로 선택한 경우 MYSQL 연결 권한이 호스트가 아닌 IP를 허용하도록 설정되어 있는지 확인하십시오.
대부분의 시스템에서 로컬 MySQL 서버의 경우 고전적인 "host=localhost" 대신 ipv4 네트워크의 경우 호스트=127.0.0.1, ipv6 네트워크의 경우 호스트=::1을 사용해야 합니다.
DNS 확인이 비활성화된 경우에도 여전히 localhost를 통해 연결할 수 있는 이유는 무엇입니까?
답변1
MySQL은 연결을 localhost
특별히 처리합니다. 이 경우 TCP가 아닌 UNIX 도메인 소켓을 통해 연결되며 문자열은 localhost
사용자 인증에 계속 사용됩니다.