Документация MySQL

28.05.2008

двумя различными
способами: используя либо Unix-сокеты, когда соединение происходит через
файл в файловой системе (по умолчанию
'/tmp/mysqld.sock'
), либо TCP/IP с
соединением через номер порта. Unix-сокеты обеспечивают большую скорость,
чем TCP/IP, но могут применяться только при соединении с сервером на том
же компьютере. Unix-сокеты используются, если не задано имя хоста или если
задано специальное имя
.
В Windows, если сервер
выполняется в 9x/Me, возможно соединение
только через TCP/IP. Если сервер работает на NT/2000/XP и
, то можно также устанавливать соединение с помощью
именованных каналов. Имя именованного канала - MySQL. Если имя хоста не
указано при соединении с
, то клиент MySQL сначала попробует
подключиться к именованному каналу, а если этого сделать не удастся, то к
порту TCP/IP. Можно предписать использование именованных каналов в
Windows, используя
.
в качестве имени хоста.
(2002) Can't connect to ...
обычно говорит о том, что MySQL не
запущен на данной системе или что при попытке соединиться с сервером
используется неверный сокет-файл или порт TCP/IP.
в Windows),
выполняется ли на сервере процесс с именем
! Если процесса
нет, то его необходимо запустить (see section
).
выполняется, то можно проверить сервер, пробуя
использовать следующие различные соединения (конечно, номер порта и путь
сокета для вашей конфигурации могут быть другими):
shell> mysqladmin version
shell> mysqladmin variables
shell> mysqladmin -h 'hostname' version variables
shell> mysqladmin -h 'hostname' --port=3306 version
shell> mysqladmin -h 'ip for your host' version
shell> mysqladmin --socket=/tmp/mysql.sock version
Обратите внимание на то, что для
(т.е. текущего имени
хоста) в команду
.
Ниже приводится несколько причин, которые могут вызывать ошибку
не выполняется.
Сервер запущен на системе, использующей MIT-потоки. При работе на
системе, в которой отсутствуют "родные" потоки,
(see section ). Однако
во всех версиях MIT-потоков не поддерживаются Unix-сокеты. В системе без
поддержки сокетов при соединении с сервером всегда необходимо явно
указывать имя хоста. Попробуйте проверить соединение с сервером с помощью
следующей команды:
Кто-либо удалил Unix-сокет, используемый
'/tmp/mysqld.sock'
). Возможно, есть задание
, которое удаляет сокет
MySQL (например, задание, удаляющее старые файлы в каталоге
). В таком
случае всегда можно выполнить
и проверить,
действительно ли существует сокет, который используется
.
Решение здесь заключается в следующем: можно либо изменить задание cron с
тем, чтобы оно не удаляло
'mysqld.sock'
, либо поместить сокет в каком-нибудь
другом месте (see section
).
. Если путь к
сокету для сервера был изменен, то необходимо уведомить о новом пути и
клиентов MySQL. Это можно сделать, передав клиенту путь к сокету в
качестве аргумента. see section
.
Используется Linux, и один из потоков аварийно завершился (
). В
этом случае, перед тем как заново запустить MySQL, необходимо уничтожить
все остальные потоки
(например, с помощью сценария
).
Обращайтесь к разделу See section
.
Возможно, пользователь, от которого запущен MySQL-сервер, не имеет
привилегий чтения и записи для каталога, содержащего сокет-файл, либо
для самого сокет-файла. В этом случае необходимо либо изменить
привилегии для каталога/файла, либо перезапустить
, так чтобы
сервер использовал каталог, к которому пользователь имеет доступ.
, то чтобы выяснить, в чем проблема, можно попробовать
выполнить следующие действия:
Проверить, запущен ли сервер, выполнив
, и несколько раз нажать Enter. Если MySQL работает на
этом порту, то должен быть получен ответ, включающий номер версии
запущенного сервера. Если будет выдана ошибка вроде
, то на указанном порту
сервер не работает.
, какой порт TCP/IP сконфигурирован для
использования
(переменная port).
Проверьте, не запускается ли сервер
.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Рубрики: Без рубрики |

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.