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.