mysql
RHEL 6 서버 중 하나에 데이터베이스를 설정했습니다 . java
프로그램을 사용하여 다른 컴퓨터에서 이 서버의 데이터베이스에 연결 하고 싶습니다 . 어떻게 해야 하나요?
답변1
클래스 경로 설정
JDBC 커넥터는 경로에 있습니다 /usr/share/java/
. 우리는 수출할 수 있습니다클래스 경로처럼,
export CLASSPATH=/usr/share/java/mysql-connector-java.jar:$CLASSPATH
사용자 권한 부여
데이터베이스에 접속하는 사용자에게는 권한을 부여해야 합니다. 이는 mysql
다음 쿼리를 사용하여 달성할 수 있습니다.
GRANT ALL PRIVILEGES ON *.* TO ‘user’@’%’ IDENTIFIED BY ‘<user-password>’ WITH GRANT OPTION;
이제 Java 프로그램을 사용하여 이 컴퓨터 서버에 대한 연결을 설정할 수 있지만 이 서버의 이름을 사용하거나 다른 컴퓨터에서 연결해야 하는 mysql
경우 논의된 대로 몇 가지 예외가 발생합니다.localhost
여기그리고여기.
/etc/hosts
파일 편집
위 단계에서 시스템의 호스트 이름 대신 시스템의 IP 주소만 사용하면 작동합니다. 따라서 문제가 dns
이름 확인과 관련된 것으로 의심됩니다.
/etc/hosts
다음 항목을 포함하도록 파일을 수정했습니다 .
127.0.0.1 servername.edu localhost
여전히 호스트 이름을 사용하여 데이터베이스에 연결할 수 없습니다. /etc/hosts
파일도 변경했다는 점을 고려하면 이상하다고 생각됩니다. 나는 ip6tables
이것이 문제인지 확인하기 위해 멈췄습니다. 그러나 어떤 옵션도 작동하지 않으므로 예외가 발생합니다.
ERROR: java.net.UnknownHostException:connection refused
/etc/my.cnf 파일 편집
마지막 예외는 유망합니다. 연결이 거부되었다는 메시지가 표시됩니다. 호스트 이름과 같은 것을 확인할 수 없습니다. 그래서 /etc/my.cnf
파일에서 뭔가를 변경하고 파일에 다음 줄을 추가해야 한다고 생각했습니다 .
port=3306
bind-address=0.0.0.0
위와 같이 변경하면 호스트 이름을 사용하여 어디에서나 이 컴퓨터에 연결할 수 있습니다.