Spec-Zone .ru
спецификации, руководства, описания, API

4.2.2. Соединение с MySQL Server

Для клиентской программы, чтобы быть в состоянии соединиться с сервером MySQL, это должно использовать надлежащие параметры соединения, такие как имя узла, куда сервер работает и имя пользователя и пароль Вашей учетной записи MySQL. У каждого параметра соединения есть значение по умолчанию, но можно переопределить их по мере необходимости использование опций программы, определенных или на командной строке или в файле опции.

Примеры здесь используют mysql клиентскую программу, но принципы применяются к другим клиентам, таким как mysqldump, mysqladmin, или mysqlshow.

Эта команда вызывает mysql, не определяя параметров соединения явно:

shell> mysql

Поскольку нет никаких опций параметра, значения по умолчанию применяются:

Определить имя хоста и имя пользователя явно, так же как пароль, соответствующие опции предоставления на командной строке:

shell> mysql --host=localhost --user=myname
        --password=mypass mydbshell> mysql -h localhost -u myname
        -pmypass mydb

Для опций пароля значение пароля является дополнительным:

Как только упомянуто, включая значение пароля на командной строке может быть угроза безопасности. Чтобы избежать этой проблемы, определите --password или -p опция без любого после значения пароля:

shell> mysql --host=localhost --user=myname
        --password mydbshell> mysql -h localhost -u myname -p
        mydb

Когда у опции пароля нет никакого значения пароля, клиентская программа печатает подсказку и ожидает Вас, чтобы ввести пароль. (В этих примерах, mydb не интерпретируется как пароль, потому что он разделяется от предыдущей опции пароля пространством.)

На некоторых системах, библиотечная подпрограмма, что использование MySQL, чтобы запросить пароль автоматически ограничивает пароль восемью символами. Это - проблема с системной библиотекой, не с MySQL. Внутренне, у MySQL нет никакого предела для длины пароля. Чтобы работать вокруг проблемы, измените свой пароль MySQL на значение, которое является восемью или меньшим количеством символов долго, или помещает Ваш пароль в файл опции.

На Unix программы MySQL обрабатывают имя хоста localhost особенно, в пути, который, вероятно, отличается от того, что Вы ожидаете по сравнению с другими основанными на сети программами. Для соединений с localhost, Программы MySQL пытаются соединиться с локальным сервером при использовании файла сокета Unix. Это происходит даже если a --port или -P опция дается, чтобы определить номер порта. Чтобы гарантировать, что клиент делает соединение TCP/IP с локальным сервером, использовать --host или -h определить значение имени хоста 127.0.0.1, или IP-адрес или имя локального сервера. Можно также определить протокол соединения явно, даже для localhost, при использовании --protocol=TCP опция. Например:

shell> mysql --host=127.0.0.1shell> mysql --protocol=TCP

--protocol опция позволяет Вам установить определенный тип соединения, даже когда другие опции обычно принимали бы значение по умолчанию к некоторому другому протоколу.

Если сервер конфигурируется, чтобы принять соединения IPv6, клиент может соединиться по использованию IPv6 --host=::1. См. Раздел 5.1.9, "Поддержка IPv6".

На Windows можно вынудить клиент MySQL использовать соединение именованного канала, определяя --pipe или --protocol=PIPE опция, или определяя . (период) как имя хоста. Если соединения именованного канала не включаются, ошибка происходит. Используйте --socket опция, чтобы определить имя канала, если Вы не хотите использовать имя канала значения по умолчанию.

Соединения с удаленными серверами всегда используют TCP/IP. Эта команда соединяется с работой сервера remote.example.com использование значения по умолчанию номер порта (3306):

shell> mysql
        --host=remote.example.com

Чтобы определить номер порта явно, используйте --port или -P опция:

shell> mysql --host=remote.example.com
        --port=13306

Можно определить номер порта для соединений с локальным сервером, также. Однако, как обозначено ранее, соединения с localhost на Unix будет использовать файл сокета по умолчанию. Вы должны будете вызвать соединение TCP/IP как уже описано или любую опцию, которая определяет, что номер порта будет проигнорирован.

Для этой команды программа использует файл сокета на Unix и --port опция игнорируется:

shell> mysql --port=13306
        --host=localhost

Чтобы заставить номер порта использоваться, вызовите программу любым из этих способов:

shell> mysql --port=13306
        --host=127.0.0.1shell> mysql --port=13306
        --protocol=TCP

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

Возможно определить различные значения по умолчанию, которые будут использоваться, когда Вы делаете соединение так, чтобы Вы не ввели их в командную строку каждый раз, когда Вы вызываете клиентскую программу. Это может быть сделано несколькими способами: