Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не получается подключиться через named pipe 
V
    Опции темы
Coder
Дата 26.10.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



в my.ini указываю следующее:

Код

...
[client]
port=3309
socket=C:/mysql_sock/mysql.sock
...
[mysqld]
port=3309
enable-named-pipe
socket=C:/mysql_sock/mysql.sock
...


Потом, согласно описанию к функции mysql_real_connect(), пытаюсь подключиться через named piped (указывая “localhost” в параметре хост) . Но ничего не выходит - подключение все равно едет через locahost:3309.

Код

The value of host may be either a hostname or an IP address. If host is NULL or the string "localhost", 
a connection to the local host is assumed. If the OS supports sockets (Unix) or named pipes (Windows), they are used instead 
of TCP/IP
 to connect to the server. 


Подскажите, в чем дело?

P.S. ПО - MySQL 5.0.18, Windows 2003


Это сообщение отредактировал(а) Coder - 26.10.2008, 12:42
PM MAIL   Вверх
Coder
Дата 27.10.2008, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



Никто  не работает через named pipe?  smile 
PM MAIL   Вверх
Бонифаций
Дата 27.10.2008, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



не уверен как там в мануале, но точно знаю в windows в отличие от линукс localhost трактуется как 127.0.0.1. Чтобы в windows цепляться не через tcp/ip надо указывать пустой host


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Coder
Дата 27.10.2008, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



Бонифаций, пробывал и пустой, пробывал изменять/убирать параметр socket, пробывал запускать сервер с --enable-named-pipe. Ничего не помогает...
PM MAIL   Вверх
Coder
Дата 27.10.2008, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



И еще, вот такая команда (где явно указано, что каналы нужно использовать)

Код

"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --console --enable-named-pipe


выдает:

Код

Version: '5.0.18-nt'  socket: ''  port: 3309  MySQL Community Edition (GPL)



PM MAIL   Вверх
Coder
Дата 27.10.2008, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: 1
Всего: 11



Все, проблема решена!

Возьмите на заметку!

Итак, для подключения к локальной машине через туннель необходимо:
1. Добавить в секцию [mysqld] файла конфигурации (my.ini) следующее:
Код

port=3306
#skip-networking
enable-named-pipe

*если раскомментировать skip-networking, то подключение к хосту будет возможно только через туннели.

2. Перезапустить сервер MySQL.

3. Для подключение к серверу через named pipe в качестве имени хоста нужно указывать "." (точку)! Все остальное - NULL, "localhost", "127.0.0.1" приводит к подключению через TCP/IP, даже если каналы запущены. MySQL автоматические их не использует, несмотря на сказанное в мануале.

Код

C:>mysql -h . -u root -p

Код

mysql_real_connect(myData,".","root","****","db",3306,NULL,0)


Выдержки из официальной документации:
Код

If the MySQL server is running on Windows 9x or Me, you can connect only via TCP/IP. If the server is running on Windows NT, 2000, XP, or 
2003 and is started with the --enable-named-pipe option, you can also connect with named pipes if you run the client on the host where the
 server is running. The name of the named pipe is MySQL by default. If you don't give a hostname when connecting to mysqld, a MySQL client 
first tries to connect to the named pipe.
 If that doesn't work, it connects to the TCP/IP port. You can force the use of named pipes on 
Windows by using . as the hostname. 



Код

MySQL supports TCP/IP on all Windows platforms. The mysqld-nt and mysql-max-nt servers support named pipes on Windows NT, 2000, 
XP, and 2003. However, the default is to use TCP/IP regardless of platform. (Named pipes are slower than TCP/IP in many Windows
 configurations.
) 


Ссылки по теме:
1. http://dev.mysql.com/tech-resources/articl...ql_windows.html
2. http://www.waltercedric.com/internet-www-m...named-pipe.html

Это сообщение отредактировал(а) Coder - 27.10.2008, 14:22
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.