Основы программирования в Linux - Нейл Мэтью
Шрифт:
Интервал:
Закладка:
Вполне возможно, что сервер функционирует, но просто отвергает ваше подключение. Если так, далее следует проверить наличие базы данных, особенно базы данных стандартных прав доступа 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.