Путь к сокету mysql забит каким-то магическим образом гвоздями в исходники ОРТСа и явного средства для его настройки нет. Точнее, оно есть, но в мануале не описано и не очевидное оно напрочь.
По этому, у тех людей, у которых mysql сконфигрён так, чтоб сокет лежит не тут /tmp/mysql.sock, бывают грабли с ОТРСом.
Долгое время пытался лечить, тупо создавая симлинк
sudo ln -s /opt/bitnami/mysql/tmp/mysql.sock /tmp/mysql.sock
И это было бы достаточно надежным решением, если бы /tmp не очищался периодически операционной системой и симлинк периодически приходится пересоздавать.
В общем, в какой-то момент мне надоело пересоздавать симлинк и я таки нешл на офф.сайте решение.
Оказывается, в конфиге таки можно сокет указать, но для этого нет отдельного параметра. Все делается в DatabaseDSN, что, в общем-то, нельзя назвать нелогичным решением:$Self->{'DatabaseDSN'} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};mysql_socket=/opt/bitnami/mysql/tmp/mysql.sock";
При этом, на оффсайте деза - там сказано, что, типа, если сокет не указан, то используется соединение по tcp/ip. Это наигралово - на самом деле в этом случае otrs использует сокет в /tmp/mysql.sock.
По этому, у тех людей, у которых mysql сконфигрён так, чтоб сокет лежит не тут /tmp/mysql.sock, бывают грабли с ОТРСом.
Долгое время пытался лечить, тупо создавая симлинк
sudo ln -s /opt/bitnami/mysql/tmp/mysql.sock /tmp/mysql.sock
И это было бы достаточно надежным решением, если бы /tmp не очищался периодически операционной системой и симлинк периодически приходится пересоздавать.
В общем, в какой-то момент мне надоело пересоздавать симлинк и я таки нешл на офф.сайте решение.
Оказывается, в конфиге таки можно сокет указать, но для этого нет отдельного параметра. Все делается в DatabaseDSN, что, в общем-то, нельзя назвать нелогичным решением:$Self->{'DatabaseDSN'} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};mysql_socket=/opt/bitnami/mysql/tmp/mysql.sock";
При этом, на оффсайте деза - там сказано, что, типа, если сокет не указан, то используется соединение по tcp/ip. Это наигралово - на самом деле в этом случае otrs использует сокет в /tmp/mysql.sock.
Комментарии
Отправить комментарий