2.6.2.3 Работа MySQL в среде Windows
MySQL поддерживает TCP/IP на всех Windows-системах и именованные каналы в
среде NT/2000/XP. По умолчанию MySQL использует именованные каналы для
соединений с локальной машиной в среде NT/2000/XP и TCP/IP - во всех
остальных случаях, если на клиентской машине установлен TCP/IP. Имя машины
определяет используемый протокол:
Имя машины | Протокол
|
NULL(отсутствует) |
На NT/2000/XP пытается установить соединение через именованные каналы; если это не работает, используется TCP/IP. На 9x/Me используется TCP/IP.
|
. | Именованные каналы.
|
localhost | Соединение TCP/IP с локальной машиной
|
имя удаленной машины | TCP/IP
|
Чтобы заставить MySQL-клиента использовать именованные каналы, следует
добавить опцию --pipe
или задать .
в качестве имени машины для
соединения. Для определения имени канала используйте опцию --socket
.
Отметим, что начиная с версии 3.23.50 именованные каналы применяются
только в случае, если mysqld
запущен с опцией --enable-named-pipe
. Это
вызвано тем, что у некоторых пользователей применение именованных каналов
приводило к прекращению работы сервера MySQL.
Для проверки работоспособности MySQL нужно выполнить следующие команды:
C:\> C:\mysql\bin\mysqlshow
C:\> C:\mysql\bin\mysqlshow -u root mysql
C:\> C:\mysql\bin\mysqladmin version status proc
C:\> C:\mysql\bin\mysql test
Если при ответе mysqld
на входящие соединения под Windows 9x/Me возникают
задержки, то это, скорее всего, вызвано проблемами с вашим DNS. В таком
случае следует запускать mysqld с опцией --skip-name-resolve
и в таблицах
привилегий MySQL использовать только localhost
и IP-адреса. Избежать
работы с DNS при соединении с MySQL-сервером mysqld-nt
, работающим под
NT/2000/XP, можно путем применения опции --pipe
, которая задает
использование именованных каналов. Сказанное выше справедливо для
большинства клиентов MySQL.
Существует две версии программы работы с MySQL из командной строки:
Бинарный файл | Описание
|
mysql | Собран ``родными'' средствами Windows, обеспечивает весьма ограниченные возможности редактирования текста.
|
mysqlc | Собран с использованием компилятора и библиотек Cygnus GNU, которые обеспечивают редактор readline .
|
Если вы хотите использовать `mysqlc.exe', сначала необходимо скопировать
`C:\mysql\lib\cygwinb19.dll' в системный каталог Windows (`\windows\system'
или в другое аналогичное место).
По умолчанию всем пользователям Windows предоставляются полные права
доступа ко всем базам данных без ввода пароля. Чтобы обеспечить большую
безопасность MySQL, необходимо задать пароль для каждого пользователя и
удалить запись в таблице mysql.user
, содержащую Host='localhost'
и User='
`
.
Необходимо также установить пароль для пользователя root
. Приведенный ниже
пример начинается с удаления возможности анонимного доступа, который может
быть использован любым пользователем для доступа к базе данных test
, после
чего устанавливается пароль для пользователя root
:
C:\> C:\mysql\bin\mysql mysql
mysql> DELETE FROM user WHERE Host='localhost' AND User=' ';
mysql> QUIT
C:\> C:\mysql\bin\mysqladmin reload
C:\> C:\mysql\bin\mysqladmin -u root password your_password
Если вы хотите остановить сервер mysqld
после того, как установлен пароль
для пользователя root
, нужно использовать команду:
C:\> mysqladmin --user=root --password=your_password shutdown
Если у вас работает старая испытательная версия MySQL 3.21 под Windows,
вышеприведенная команда не выполнится и приведет к сообщению об ошибке:
parse error near `SET OPTION password'
. Для решения этой проблемы следует
выполнить загрузку и обновление до последней доступной бесплатно версии
MySQL.
В текущей версии MySQL вы можете легко добавлять новых пользователей и
изменять их привилегии при помощи команд GRANT
и REVOKE
(see section 4.3.1 Синтаксис команд GRANT
и REVOKE
).