mysql problemas de conexão jdbc no RHEL 6

0

Eu configurei o banco de dados mysql em um dos servidores do RHEL 6. Eu gostaria de me conectar ao banco de dados deste servidor de qualquer outra máquina usando um programa java . Como devo fazer isso?

    
por Ramesh 19.07.2014 / 07:57

1 resposta

1

Definindo o caminho da classe

O conector JDBC estará localizado no caminho /usr/share/java/ . Podemos exportar o classpath como

export CLASSPATH=/usr/share/java/mysql-connector-java.jar:$CLASSPATH

Conceder privilégios ao usuário

Para o usuário que se conecta ao banco de dados, os privilégios devem ser concedidos. Isso pode ser obtido usando a consulta mysql abaixo.

GRANT ALL PRIVILEGES ON *.* TO ‘user’@’%’ IDENTIFIED BY ‘<user-password>’ WITH GRANT OPTION;

Agora, podemos estabelecer uma conexão com o servidor mysql dessa máquina usando o programa java, mas apenas como localhost . Se precisarmos usar o nome desse servidor ou nos conectarmos com outra máquina, teremos várias exceções, conforme discutido aqui e aqui .

Edite o arquivo /etc/hosts

Deve-se notar que na etapa acima, se eu usei apenas o endereço IP da máquina em vez do nome de host da máquina, funcionou. Então, suspeitei que o problema era algo relacionado à dns resolução de nomes.

Eu modifiquei meu arquivo /etc/hosts para ter a entrada abaixo.

127.0.0.1   servername.edu        localhost

Ainda não consegui me conectar ao banco de dados usando o nome do host, o que achei estranho, já que mudei o arquivo /etc/hosts também. Eu até parei ip6tables para verificar se esse é o problema. No entanto, nenhuma das opções funcionou e estava me dando a exceção como,

ERROR: java.net.UnknownHostException:connection refused

Edite o arquivo /etc/my.cnf

A última exceção foi promissora. Ele diz que a conexão foi recusada em vez de dizer algo como não ser capaz de resolver o nome do host. Então, pensei que algo deveria ser alterado no arquivo /etc/my.cnf e adicionei as linhas abaixo ao arquivo.

port=3306
bind-address=0.0.0.0

Quando fiz as alterações acima, consegui me conectar a essa máquina de qualquer lugar usando o nome do host.

    
por 19.07.2014 / 07:57