Как подключить PHPMyAdmin к MySQL через именной канал с другим именем?

Тема в разделе "Базы данных", создана пользователем Sobesednik, 1 авг 2013.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Sobesednik

    Sobesednik Постоялец

    Регистр.:
    30 мар 2013
    Сообщения:
    105
    Симпатии:
    22
    Вот вам задачка :confused:

    1) MySQL работает со следующими настройками
    [client]
    Socket=mysql
    Pipe
    [mysqld]
    Socket=mysql
    skip-networking
    enable-named-pipe


    2) PHPMyAdmin имеет следующие параметры
    $cfg['Servers'][$i]['host'] = '.';
    $cfg['Servers'][$i]['connect_type'] = 'socket';

    С помощью этих настроек вы можете подключиться к MySQL через именованный канал под названием "mysql".Видимо, "mysql" есть единственное имя по умолчанию которое можно употреблять в PhpMyAdmin.Вопрос: Возможно ли ввести изменения в конфигурационный файл PHPMyAdmin для того, чтобы подключиться к MySQL через именной канал с другим именем (например mypipe29.sock)?
     
  2. donvictorio

    donvictorio

    Регистр.:
    28 янв 2010
    Сообщения:
    877
    Симпатии:
    808
    [mysqld]
    Socket=mypipe29
     
  3. Sobesednik

    Sobesednik Постоялец

    Регистр.:
    30 мар 2013
    Сообщения:
    105
    Симпатии:
    22
    К сожалению, это не пойдет. Я пыталась объяснить, что по моим испытаниям, да, вы можете изменить [mysqld] настройки, но потом phpMyAdmin не "жрет" эти изменения. Надо найти, если это вообще возможно не изменяя код, как поправить конфигурационный файл у phpMyAdmin. Кокая то брехня...
     
  4. donvictorio

    donvictorio

    Регистр.:
    28 янв 2010
    Сообщения:
    877
    Симпатии:
    808
    В Windows системах, если в качестве имени хоста передается ., библиотека попытается открыть соединение на основе именованного пайпа. В этом случае имя сокета будет воспринято, как имя пайпа. Если имя сокета не задано, то будет использовано значение \\.\pipe\MySQL.
    my.cnf:
    socket = /var/lib/mysql/mysql.sock #любое имя сокета, хоть veliki_ktulhu.sock
    Перейти по ссылке
     
  5. Sobesednik

    Sobesednik Постоялец

    Регистр.:
    30 мар 2013
    Сообщения:
    105
    Симпатии:
    22
    Совершенно верно. Но видимо я что то упустил в формулировке моего вопроса. Нет никоких проблем работая с MySQL сервером, но вот что касается phpMyAdmin, это уже вопрос.

    phpMyAdmin подключается к MySQL только в том случае если наименование named-pipe будет default, т.е. mysql (в том случае, как сказано, даже не обязательно указать в [mysqld] Socket=mysql).

    Но, если мы меняем named-pipe на любое другое наименование (например mypipe29.sock), то phpMyAdmin не будет подключаться к MySQL server, и будет выбрасываться следующая ошибка:

    "#2002 Cannot log in to the MySQL server"

    Естественно! То есть, phpMyAdmin не находит именного канала с новым названием. Мое предположение в том, что код phpMyAdmin осознает только default named-pipe, т.е. "mysql".

    Пробовал добавить следующее в конфигурационный файл PHPMyAdmin:

    $cfg['Servers'][$i]['socket'] = 'somename.sock';

    Где 'socket' означает Перейти по ссылке. Тоже неработает, несмотря на рекомендации разработчиков. В общем, все еще пробую решить проблему безрезультатно.
     
  6. donvictorio

    donvictorio

    Регистр.:
    28 янв 2010
    Сообщения:
    877
    Симпатии:
    808
    если всё так сложно - может забить на именованые пайпы и использовать стандартные? либо вообще tcp разрешить в пределах локального хоста.
     
    Sobesednik нравится это.
  7. Sobesednik

    Sobesednik Постоялец

    Регистр.:
    30 мар 2013
    Сообщения:
    105
    Симпатии:
    22

    Все может быть. Всегда в таких случаях мы находим другое, часто более простое, решение. А пока напрашивается вот что:PHPMyAdminвидимо не в состоянии правильно прочитать путьк именному каналу.
     
  8. donvictorio

    donvictorio

    Регистр.:
    28 янв 2010
    Сообщения:
    877
    Симпатии:
    808
    если это windows хост, и phpmyadmin только для себя, можно использовать вместо него navicat на машине, подключаясь по RDP. он 100% подключается к любым сокетам и пайпам. можно также подключаться к машине через ssh туннель, таким образом можно избежать открытого tcp доступа к базе.
    navicat есть на Перейти по ссылке
     
  9. esche

    esche

    Регистр.:
    9 авг 2009
    Сообщения:
    359
    Симпатии:
    243
    Почти так и есть: Перейти по ссылке
     
  10. Sobesednik

    Sobesednik Постоялец

    Регистр.:
    30 мар 2013
    Сообщения:
    105
    Симпатии:
    22
    Я был очень занят, чтобы появиться на сайте ранее. Все оказалось довольно прозаическую и легко. Следующие параметры должны быть для того, чтобы подключиться к MySQL через именованный канал с любым именем:

    $cfg['Servers'][$i]['host'] = '.';
    $cfg['Servers'][$i]['connect_type'] = 'socket';
    $cfg['Servers'][$i]['socket'] = '\\\\.\\pipe\\anynameofpipe';

    Я надеюсь, что кто нибуть найдет это полезным тоже.
     
    latteo нравится это.
Статус темы:
Закрыта.