Назад | Перейти на главную страницу

mysql не будет подключаться к символьному сокету, если указан полный путь, но подключается с помощью относительного

Так что я очень запутался.

У меня есть тестовая сборка, которая начала ломаться, потому что сокет mysql пытался создать в такой глубоко вложенной папке, что его путь к файлу превысил ограничение в 108 символов. Поэтому я решил поместить сокет в домашний каталог тестируемых пользователей в папку с таким же названием. Т.е.:

/home/nightlybuild/projects/......./myTestProject/output/db/connect.sock становится /home/nightlybuild/myTestProject/output/db/connect.sock

затем я создал символическую ссылку во вложенном каталоге:

ln -s /home/nightlybuild/myTestProject/output/db/connect.sock /home/nightlybuild/projects/......./myTestProject/output/db/connect.sock

Вот что меня смущает. Если я попытаюсь запустить mysql через этот сокет, передав ЛЮБОЙ относительный путь к сокету, я могу подключиться, и все будет работать, как ожидалось. Однако, если я передаю полный абсолютный путь к сокету, я получаю ошибку «Невозможно подключиться».

Работает: (из домашнего каталога):

mysql --socket=projects/......./myTestProject/output/db/connect.sock

(не работает):

mysql --socket=/home/nightlybuild/projects/......./myTestProject/output/db/connect.sock

Я не понимаю, как полный путь вообще мог его нарушить. У кого-нибудь есть идеи, что я делаю неправильно, или даже советы по поводу журнала или чего-то, что я мог бы посмотреть, чтобы попытаться получить больше информации о проблеме?

Ура!