Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Falha na conexão do Tomcat/Hibernate com o MySql com falha no link de comunicação e permissão negada


Eu também rastreei esse problema. Meus sintomas eram exatamente os mesmos que os seus e até tentei as mesmas coisas que você tentou. Resumindo meu problema só ocorreu porque eu estava usando o tomcat no centos com o SELinux.

Algumas pessoas me ajudaram a diagnosticar usando os seguintes comandos para analisar eventos de segurança e por que algumas ações não foram permitidas:
sudo ausearch -m avc
sudo grep "tcp_socket" /var/log/audit/audit.log | audit2why // translates log into some human readable reasons why the audit record was generated

Eu vi entradas como:

E então encontrei este artigo sobre tomcat e SELinux https://noobient.com/post/165972214381/selinux-woes-with-tomcat-on-centos-74

Você pode executar o comando a seguir para ver se o tomcat está sendo executado no contexto de segurança tomcat_t.
$ps auxZ | grep tomcat

Para determinar verdadeiramente se meu erro foi SELinux, desativei o SELinux
$ sestatus // shows: SELinux status:                 enabled
$ sudo vim /etc/selinux/config // set "SELINUX=disabled"
$ sudo shutdown -r now
$ sestatus // shows: SELinux status:                 disabled

reiniciei minha máquina e vi que o tomcat agora estava fazendo a conexão de saída.

Ótimo, agora eu pelo menos sei POR QUE isso estava acontecendo. Claro que se você precisar do SELinux, desativá-lo NÃO é uma solução. Outra solução que provavelmente não é uma solução é instalar o tomcat sem passar pelo yum. O Yum instalará o tomcat usando o contexto de segurança.

Acho que o curso de ação agora é modificar o contexto de segurança ou o conjunto de regras que governam o tomcat para permitir que ele faça conexões de saída.