Книга: Основы программирования в 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 и составляющих ее базах данных.
? Без параметров она отображает все имеющиеся базы данных.
? С базой данных в качестве параметра она выводит таблицы этой базы данных.
? С именами базы данных и таблицы утилита отображает перечень столбцов заданной таблицы.
? Если заданы база данных, таблица и столбец, утилита выводит подробную информацию о заданном столбце.
- Команды и формирование культуры по инициативе сверху
- Как удалить ненужные команды из контекстного меню?
- Приложение 1 Команды FTP-протокола
- 3.1.1. Основные команды
- 5.1. Полезные команды
- 5.1.6. r-команды
- 8.3. Полезные команды
- 8.4.4. Лишние команды
- 10.1.1. Команды FTP-протокола
- 12.5.1. Основные команды
- Листинг 12.1. Результат выполнения команды lastlog
- Листинг 12.2. Результат выполнения команды lsof