Читайте книги онлайн на Bookidrom.ru! Бесплатные книги в одном клике

Читать онлайн «Основы программирования в Linux». Страница 88

Автор Нейл Мэтью

Вполне возможно, что сервер функционирует, но просто отвергает ваше подключение. Если так, далее следует проверить наличие базы данных, особенно базы данных стандартных прав доступа MySQL (default permissions database). В дистрибутивах Red Hat она обычно по умолчанию располагается в /var/lib/mysqlis, другие дистрибутивы используют разные каталоги. Проверьте сценарий запуска MySQL (например, в файле /etc/init.d) и конфигурационный файл /etc/my.cnf. В противном случае запустите программу явно с помощью команды mysqld --verbose --help и найдите переменную datadir. После того как вы определили каталог базы данных, проверьте, содержит ли он хотя бы базу данных стандартных прав доступа (с именем mysql) и что именно ее, заданную в файле my.cnf, использует процесс-демон сервера.

Если вы все еще не подключились, воспользуйтесь редактором сервисов (service editor) для остановки сервера, убедитесь в том, что не выполняется ни один процесс mysqld, и затем перезапустите его снова и попробуйте подключиться. Если вы все- таки никуда не попали, можно полностью деинсталлировать MySQL и установить ее с нуля еще раз. Для выяснения некоторых известных только посвященным возможностей очень полезной может оказаться документация MySQL на Web-сайте (более свежая, чем интерактивное руководство на локальной машине, кроме того, в ней есть редактируемые пользователями подсказки, и предложения, и форум).

Администрирование MySQL

Группа программ-утилит, включенных в дистрибутив MySQL, облегчает процесс администрирования базы данных. Самая популярная из них — программа mysqladmin. В следующем разделе мы опишем эту и другие утилиты.

Команды

Все команды MySQL, за исключением mysqlshow, принимают как минимум три стандартных параметра, описанных в табл. 8.1.


Таблица 8.1

Опция команды Параметр Описание -u username По умолчанию утилиты mysql будут пытаться использовать то же username MySQL, что и текущее имя пользователя Linux. Применяйте параметр -u для задания другого имени пользователя -р [password] Если параметр -р задан, а пароль пропущен, он запрашивается. Если параметра -p нет в командной строке, команды MySQL полагают, что пароль не нужен -h host Применяется для подключения к серверу на другой машине (для локальных серверов всегда можно опускать) Примечание

И снова не советуем вам помещать пароль в командную строку, поскольку его можно увидеть с помощью команды ps.

myisamchk

Утилита myisamchk разработана для проверки и корректировки любых таблиц данных, применяющих стандартный табличный формат MYISAM, исходно поддерживаемый СУРБД MySQL. Обычно утилиту myisamchk следует запускать от имени пользователя mysql, созданного во время установки, из каталога, в котором размещаются таблицы. Для проверки базы данных выполните команду su mysql, измените название каталога в соответствии с именем базы данных и запустите утилиту myisamchk с одной или несколькими опциями, предложенными в табл. 8.2. Например,

myisamchk -e -r *.MYI

Самые популярные опции команды приведены в табл. 8.2.


Таблица 8.2

Опция команды Описание -с Ищет ошибки в таблицах -e Выполняет расширенную проверку -r Исправляет найденные ошибки

Дополнительную информацию можно получить, запустив myisamchk без параметров и просмотрев подробные сообщения системы помощи. Данная утилита никак не влияет на таблицы формата InnoDB.

mysql

Это основное и очень мощное средство командной строки СУРБД MySQL. С его помощью тем или иным способом можно выполнить любую административную или пользовательскую задачу. Запустить монитор mysql можно из командной строки; добавив заключительный дополнительный параметр, имя базы данных, вы сможете в мониторе обойтись без команды use <база_данных>. Далее приведен пример запуска монитора от имени пользователя rick, запроса пароля (обратите внимание на пробел после -p) и применения базы данных foo по умолчанию.

$ mysql -u rick -р foo

Для постраничного просмотра других опций командной строки монитора mysql примените команду mysql --help | less.

Если вы запускаете СУРБД MySQL без указания базы данных, для выбора одной из баз данных можно использовать опцию use <база_данных>, приведенную в списке команд в табл. 8.3.

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

$ mysql -u rick --password=secretpassword foo < sqlcommands.sql

После считывания и выполнения ваших команд mysql выведет на экран строку приглашения.

Во время подключения программы-клиента mysql к серверу в дополнение к стандартному набору команд SQL92 поддерживается ряд специфических команд, перечисленных в табл. 8.3.


Таблица 8.3

Команда Краткая форма Описание help или ? \h или \? Отображает список команд edit \е Редактирует команду. Применяемый редактор задается переменной окружения $EDITOR exit или quit \q Завершает программу-клиент MySQL go \g Выполняет команду source <имя_файла> \. Выполняет команды SQL из заданного файла status \s Отображает информацию о состоянии сервера system <команда> \! Выполняет системную команду tee <имя_файла> \T Добавляет в конец заданного файла копию всего вывода use <база_данных> \u Использует заданную базу данных

Очень важная команда в этом наборе — use. Сервер mysqld предназначен для поддержки множества различных баз данных, обслуживаемых и управляемых одним серверным процессом. Во многих других серверах баз данных, таких как Oracle и Sybase, применяется термин "схема", а в СУРБД MySQL чаще используется термин "база данных". (В обозревателе запросов (Query Browser) MySQL, к примеру, применяется термин "схема".) Каждая база данных (в терминологии MySQL) представляет собой в основном независимый набор таблиц. Это позволяет настраивать разные базы данных для различных целей и назначать разных пользователей различным базам данных, используя для эффективного управления ими один и тот же сервер баз данных. С помощью команды use можно при наличии соответствующих прав переключаться между различными базами данных.

Особая база данных mysql, создаваемая автоматически при каждой установке СУРБД MySQL, применяется как основное хранилище сведений о пользователях и правах доступа.

Примечание

SQL92 — наиболее часто применяемая версия стандарта ANSI языка SQL. Ее назначение — формирование единообразия способов управления базами данных с применением SQL, обеспечивающего взаимодействие и взаимосвязь баз данных разных производителей.

mysqladmin

Эта утилита — основное средство быстрого администрирования базы данных MySQL. В дополнение к обычным параметрам она поддерживает основные команды, перечисленные в табл. 8.4.


Таблица 8.4

Команда Описание create <база_данных> Создает новую базу данных drop <база_данных> Удаляет базу данных password <новый_пароль> Изменяет пароль (как вы уже видели) ping Проверяет, работает ли сервер reload Повторно загружает таблицы полномочий, управляющие правами доступа status Предоставляет сведения о состоянии сервера shutdown Выключает сервер variables Отображает переменные, управляющие работой MySQL, и их текущие значения version Выводит номер версии сервера и время его работы

Запустите из строки приглашения утилиту mysqladmin без параметров, чтобы увидеть полный список опций. Вам потребуется применить | less.