November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Wednesday, November 30th, 2016 12:05 pm

Попросили меня сапгрейдить машинку, где живёт крупная база под MySQL, со старенькой 32-битовой CentOS, до 64-битовой. Ну, поставил новую VM, установил туда 64-битовую систему, поставил mysql-server, запустил, всё работает. Потом скопировал конфиг со старой машинки, и тут, как всегда, загадочные грабли:
161130 11:11:54 [ERROR] Can't start server: Bind on TCP/IP port: Permission denied
161130 11:11:54 [ERROR] Do you already have another mysqld server running on port: 3307 ?
161130 11:11:54 [ERROR] Aborting

Проверил netstat’ом – нету никого на 3307. Запустил ещё раз — та же фигня, не работает.

Посмотрел на старую машинку, там mysqld действительно на порту 3307. А поменять на 3306 нельзя, слишком много клиентов придётся переконфигурировать.

Попробовал закомментировать опцию port в конфиге, mysqld нормально запустился на дефолтовом 3306. Вписал port 3306 явно, тоже работает. А если поменять на какой-нибудь другой — 3307, 3308, 4096 — фигвам, не работает, хотя эти порты никакими другими программами не используются.

Ну, кто сразу угадал, что это за хрень, и как её исправить?
Отгадка под катом

Ага, это оказался redhat’овский selinux. Отключил его нафиг, всё заработало, как надо.

Оригинал этой записи в личном блоге.