sql >> Databasteknik >  >> RDS >> Mysql

Tomcat/Hibernate-anslutning till MySql misslyckas med kommunikationslänkfel och tillstånd nekad

Jag har precis spårat upp det här problemet. Mina symtom var exakt samma som dina och jag provade till och med exakt de saker du försökte. Sammanfattningsvis uppstod mitt problem bara för att jag använde tomcat på centos med SELinux.

Vissa hjälpte mig att diagnostisera med hjälp av följande kommandon för att titta på säkerhetshändelser och varför vissa åtgärder inte var tillåtna:

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

Jag såg inlägg som:

Och hittade sedan den här artikeln om tomcat och SELinux https://noobient.com/post/165972214381/selinux-woes-with-tomcat-on-centos-74

Du kan köra följande kommando för att se om tomcat körs i säkerhetskontexten tomcat_t.

$ps auxZ | grep tomcat

I syfte att verkligen avgöra om mitt fel var SELinux, inaktiverade jag SELinux

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

startade om min maskin och såg att tomcat nu gjorde den utgående anslutningen.

Bra, nu vet jag åtminstone VARFÖR det hände. Om du behöver SELinux är det naturligtvis INTE en lösning att inaktivera det. En annan lösning som förmodligen inte är en lösning är att installera tomcat utan att gå igenom yum. Yum kommer att installera tomcat med säkerhetskontexten.

Jag tror att handlingssättet nu är att modifiera säkerhetskontexten eller uppsättningen regler som styr tomcat så att den kan göra utgående anslutningar.



  1. Vad är det snabbaste sättet att välja närmaste geografiska plats från mysql-databasen?

  2. Hur man skapar en databas från ett skript i MySQL

  3. Deklarera en variabel och ställa in dess värde från en SELECT-fråga i Oracle

  4. Hur jämför jag (OCH) två strängar som representerar en binär mask i mysql?