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.