Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РУБД Практикум по mySQL.doc
Скачиваний:
9
Добавлен:
18.04.2019
Размер:
1.01 Mб
Скачать

3.1.1. Утилита командной строки mysql

Клиентская утилита mysql запускается в интерактивном режиме в DOS-окне, когда вы выбираете в меню пункт Command line client. До MySQL 5 в комплекте поставки сервера не было такой возможности запуска mysql, и прихо­дилось самим вызывать окно для работы с командной строкой. Как всегда в Windows, за удобство работы с готовым интерфейсом приходится платить непониманием сущности происходящего, при этом еще и лишаясь некоторых возможностей, благополучно использовавшихся при работе со старым интерфейсом. Поэтому, налюбовавшись на сервис Command Line Client из MySQL 5, вернемся в юность информационных технологий и откроем DOS-окно для ввода команд. В Windows это делается так: щелкаем по кнопке Пуск, выбираем пункт меню Выполнить и в появившемся окне Запуск программы набираем cmd. Появляется черное DOS-окно со строкой, содержащей имя текущего каталога, – это приглашение ввести команду. Курсор мигает в конце этой строки.

Установленный сервер mysqld-nt.exe, клиентские утилиты mysql, mysqidump и mysqlimport находятся в том каталоге, в который вы установили сервер, а именно в C:\Program Files\MySQL\MySQL Server 5.0\bin. Поскольку при установке MySQL вы добавили путь до этого каталога в переменную PATH, то смело можете запускать утилиту сразу после открытия DOS-окна.

Утилиты предназначены для работы с сервером и при запуске потребуют указать имя пользователя, под которым вы хотите подключиться к серверу, и пароль. При конфигурировании сервера MySQL вы указали пароль для суперпользователя root, теперь снова им пора воспользоваться. Обычно для получения доступа к серверу MySQL необходимо сообщить клиентской программе и хост, с которым вы хотите соединиться. Например, клиент mysql можно запустить следующим образом:

>mysql -h host_name -u user_name -pyour_pas

Здесь ключ -h указывает на то, что дальше последует имя хоста, к которому вы хотите подключиться. По умолчанию подключение осуществляется к серверу localhost. Ключ -u означает, что за ним следует имя пользователя, от имени которого осуществляется соединение, а после ключа -р указывается пароль. Обратите внимание, что пробела перед паролем нет.

Формат вызова утилиты mysql в нашем случае будет таким:

> mysql -u root -p

После ключа -р не указан пароль, мы знаем, что он нужен, но не хотим давать его в командной строке, а дождемся приглашения и введем так, что его у нас из-за спины никто не прочитает. Приглашение появится, если сервер MySQL запущен, а если сервер не доступен, будет выведено сообщение о невозможности к нему подключиться. Если ключи набраны неверно, например, пропущены пробелы, вы получите справку по утилите. После ввода пароля вы должны увидеть приветствие и приглашение командной строки уже самой утилиты mysql (рис. 6).

Рис. 6. Запуск утилиты mysql

Похоже на MySQL Command Line Client? Что и требовалось доказать.

Получив приглашение утилиты mysql, можно давать команды MySQL для создания баз и таблиц. Завершение сеанса работы происходит по команде:

mysql>quit

После этого в DOS-окне снова появится приглашение операционной системы. Учтите, что и при работе с mysql, и с операционной системой существует возможность повтора ранее данных команд. Просмотреть историю команд можно щелчками по кнопкам со стрелками вверх и вниз. По щелчку после приглашения командной строки появляются команды, запустить их можно, нажав клавишу <Enter>.

Утилита mysql может работать в двух режимах: интерактивном, который вы только что инициировали, и пакетном.

Для работы с утилитой в пакетном режиме следует написать сценарий, состоящий из последовательности команд SQL, которые предстоит исполнить для создания базы и таблиц, входящих в базу. Сценарий следует сохранить в тот же каталог bin сервера MySQL, из которого вы запускали утилиту mysql. Принято хранить сценарии в файлах с расширением sql. Кроме уже рассмотренных команд в скрипте надо предусмотреть возможность того, что в сценарии создания таблицы возможны ошибки. При исправлении ошибок в сценарии вы запускаете его несколько раз, но уже при повторном запуске получаете сообщение о том, что нельзя создать уже существующую таблицу. Значит, надо предварять создание таблицы командой

mysql> DROP TABLE IF EXISTS cars;

и удалить таблицу, если она уже существует.

Тогда сценарий создания и заполнения таблицы cars будет выглядеть так:

USE taxi;

DROP TABLE IF EXISTS cars;

CREATE TABLE cars (

model char(50) NOT NULL,

madein year(4) NOT NULL,

reg_number char (12) NOT NULL,

color char(15) NOT NULL,

id smallint AUTO_INCREMENT PRIMARY KEY

) ;

INSERT INTO cars (model, madein, reg_number, color) VALUES

('Volga','2002','A788YC23','yellow'),

('Volkswagen', '2003' , 'A789YC23', 'red'),

('Renault','2005','A790YC23','white');

Скрипт создается в любом текстовом редакторе в кодировке Windows-1251. В этой кодировке данные и записываются. И хотя в окне утилиты mysql русские буквы будут нечитаемыми, но скрипты (например РНР) передадут символы правильно.

При использовании в пакетном режиме сценарии с запросами для создания базы надо копировать в каталог bin и передавать их на вход утилите mysql при запуске:

>mysql -u root -p < script.sql

Здесь script.sql — это сценарий, содержащий команды SQL для создания таблиц, записи в них данных и т. п.