Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Połączenie Tomcat/Hibernacja z MySql kończy się niepowodzeniem z awarią łącza komunikacyjnego i odmową uprawnień

Właśnie wyśledziłem ten problem. Moje objawy były dokładnie takie same jak twoje, a nawet próbowałem dokładnie tych rzeczy, które próbowałeś. Podsumowując mój problem pojawił się tylko dlatego, że używałem tomcat na centos z SELinux.

Niektórzy ludzie pomogli mi zdiagnozować za pomocą następujących poleceń, aby sprawdzić zdarzenia związane z bezpieczeństwem i dlaczego niektóre działania nie były dozwolone:

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

Widziałem wpisy takie jak:

A potem znalazłem ten artykuł o tomcat i SELinux https://noobient.com/post/165972214381/selinux-woes-with-tomcat-on-centos-74

Możesz uruchomić następujące polecenie, aby sprawdzić, czy tomcat działa w kontekście bezpieczeństwa tomcat_t.

$ps auxZ | grep tomcat

Aby naprawdę ustalić, czy mój błąd to SELinux, wyłączyłem SELinux

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

zrestartowałem mój komputer i zobaczyłem, że tomcat nawiązuje teraz połączenie wychodzące.

Świetnie, teraz przynajmniej wiem, DLACZEGO tak się stało. Oczywiście jeśli potrzebujesz SELinux, wyłączenie go NIE JEST rozwiązaniem. Innym obejściem, które prawdopodobnie nie jest rozwiązaniem, jest zainstalowanie tomcat bez przechodzenia przez yum. Yum zainstaluje tomcat przy użyciu kontekstu bezpieczeństwa.

Myślę, że teraz należy zmienić kontekst bezpieczeństwa lub zestaw reguł rządzących tomcat, aby umożliwić mu nawiązywanie połączeń wychodzących.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Warunek SQL WHERE nie jest równy?

  2. Jak mogę używać now() w Doctrine 2 DQL?

  3. MySQL ORDER BY Pole daty, które nie ma formatu daty

  4. Jakie jest domyślne hasło roota dla MySQL 5.7?

  5. Jak wyświetlić wiersze jako kolumny w MySQL?