Подключение к mysql из Perl через SRS::MyDBI

Скрипт на перл (Catalyst Framework) не может подключиться к mysql, ругается на сокет.

Сообщение об ошибке:

[error] Caught exception in engine "SRS::MyDBI connect('database=test; mysql_read_default_file=/www/srs/config/serverconfigs/myperl.cnf; mysql_socket=/var/lib/mysql/mysql.sock; mysql_read_default_group=perl; host=localhost','test',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (40) at /usr/lib/perl5/site_perl/5.12.3/Catalyst.pm line 1951

При этом сокета /var/lib/mysql/mysql.sock не создается.

Также при этом mysql адекватно работает в связке Apache + MySQL + php.

В качестве ОС выступает openSUSE.

Как поправить это дело?

2 ответа

в myperl.cnf у тебя наверно mysql_socket прописан.

[client]
mysql_socket=/var/lib/mysql/mysql.sock

Закоменти его. Из ошибки видно, что он и не пытается на ip:port , а идет на файл-сокет. Ищи это место. Или для сервера mysql - укажи, что бы он создавал файл-сокет

[mysqld]
socket=/var/lib/mysql/mysql.sock

У mysql-сервера есть свой myperl.cnf(наверняка у него имя my.cnf - ищи его в /etc/... или в /usr/... А лучше так "find /etc/ -name *.cnf")


Попробуйте вместо localhost в конфиге для подключения указать IP, например, 127.0.0.1

licensed under cc by-sa 3.0 with attribution.