Книга: Основы программирования в Linux

Команды

Команды

Все команды 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.

mysqlbug

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

mysqldump

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

Таблица 8.5

Команда Описание
--add-drop-table Вставляет в файл вывода операторы SQL для удаления любых таблиц перед командой их создания
-e Применяет расширенный синтаксис вставки. Это нестандартный язык SQL, но если вы получаете дамп больших объемов информации, это поможет гораздо быстрее повторно загрузить дамп вашей базы в СУРБД MySQL
-t Получает дамп только данных из таблиц, а не информации, необходимой для создания таблиц
-d Получает дамп только структуры таблиц, а не реальных данных

По умолчанию mysqldump посылает эти данные в стандартный вывод, поэтому вам потребуется перенаправление их в файл.

Эта утилита очень удобна для перемещения данных или быстрого создания резервных копий, и благодаря клиент-серверной реализации MySQL ее даже можно использовать для выполнения сложного удаленного резервного копирования с помощью клиента mysqldump, установленного на другой машине. Далее для примера приведена команда подключения пользователя rick и получения дампа базы данных myplaydb:

$ mysqldump -u rick -p myplaydb > myplaydb.dump

Результирующий файл, у которого в нашей системе только одна таблица в базе данных, выглядит следующим образом:

-- MySQL dump 10.11
--
-- Host: localhost Database: myplaydb
-- --------------------------------------------------
-- Server version 5.0.37
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0*/;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'*/;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table 'children'
--
DROP TABLE IF EXISTS 'children';
CREATE TABLE 'children' (
 'childno' int(11) NOT NULL auto_increment,
 'fname' varchar(30) default NULL,
 'age' int(11) default NULL,
 PRIMARY KEY ('childno')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table 'children'
--
LOCK TABLES 'children' WRITE;
/*!40000 ALTER TABLE 'children'DISABLE KEYS */;
INSERT INTO 'children' VALUES
(1,'Jenny',21),(2,'Andrew',17),(3,'Gavin',8), (4,'Duncan',6),(5,'Emma',4),
(6,'Alex',15),(7,'Adrian',9);
/*!40000 ALTER TABLE 'children'ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2007-0.6-22 20:11:48

mysqlimport

Команда mysqlimport применяется для загрузки в таблицу большого количества данных. С помощью mysqlimport вы можете считывать из файла ввода большие объемы текстовых данных. Этой команде требуются только имена файла и базы данных; mysqlimport загрузит данные в базу данных, в таблицу с тем же именем, что и имя файла (за исключением расширения файла). Вы должны убедиться в том, что в текстовом файле столько же столбцов данных, сколько их в таблице, заполняемой данными, и типы данных совместимы. По умолчанию данные следует разделять знаком табуляции.

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

mysqlshow

Эта маленькая утилита может быстро предоставить информацию о вашей установке MySQL и составляющих ее базах данных.

? Без параметров она отображает все имеющиеся базы данных.

? С базой данных в качестве параметра она выводит таблицы этой базы данных.

? С именами базы данных и таблицы утилита отображает перечень столбцов заданной таблицы.

? Если заданы база данных, таблица и столбец, утилита выводит подробную информацию о заданном столбце.

Оглавление книги


Генерация: 0.095. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз