Mysql
 sql >> Database >  >> RDS >> Mysql

La connessione Tomcat/ibernazione a MySql non riesce con errore del collegamento di comunicazione e autorizzazione negata

Ho appena rintracciato anche questo problema. I miei sintomi erano esattamente gli stessi dei tuoi e ho anche provato le cose esatte che hai provato tu. In sintesi, il mio problema si è verificato solo perché stavo usando Tomcat su centos con SELinux.

Alcune persone mi hanno aiutato a diagnosticare utilizzando i seguenti comandi per esaminare gli eventi di sicurezza e perché alcune azioni non erano consentite:

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

Ho visto voci come:

E poi ho trovato questo articolo su Tomcat e SELinux https://noobient.com/post/165972214381/selinux-woes-with-tomcat-on-centos-74

Puoi eseguire il comando seguente per vedere se Tomcat è in esecuzione nel contesto di sicurezza di tomcat_t.

$ps auxZ | grep tomcat

Allo scopo di determinare veramente se il mio errore fosse SELinux, ho disabilitato SELinux

$ sestatus // shows: SELinux status:                 enabled
$ sudo vim /etc/selinux/config // set "SELINUX=disabled"
$ sudo shutdown -r now
$ sestatus // shows: SELinux status:                 disabled

ho riavviato la mia macchina e ho visto che Tomcat stava effettuando la connessione in uscita.

Fantastico, ora almeno so PERCHE' stava succedendo. Ovviamente se hai bisogno di SELinux, disabilitarlo NON è una soluzione. Un'altra soluzione alternativa che probabilmente non è una soluzione è installare Tomcat senza passare da yum. Yum installerà Tomcat utilizzando il contesto di sicurezza.

Penso che la linea d'azione ora sia quella di modificare il contesto di sicurezza o l'insieme di regole che governano Tomcat per consentirgli di stabilire connessioni in uscita.