Попросили меня сапгрейдить машинку, где живёт крупная база под 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 — фигвам, не работает, хотя эти порты никакими другими программами не используются.
Ну, кто сразу угадал, что это за хрень, и как её исправить?
Отгадка под катом
Оригинал этой записи в личном блоге.