Рейтинговые книги
Читем онлайн Основы программирования в Linux - Нейл Мэтью

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 85 86 87 88 89 90 91 92 93 ... 200

Запустите из строки приглашения утилиту 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 @[email protected]@CHARACTER_SET_CLIENT */;

/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;

/*!40101 SET @[email protected]@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;

/*!40103 SET @[email protected]@TIME_ZONE */;

/*!40103 SET TIME_ZONE='+00:00' */;

/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;

/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0*/;

/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO'*/;

/*!40111 SET @[email protected]@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 [email protected]_TIME_ZONE */;

/*!40101 SET [email protected]_SQL_MODE */;

/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;

/*!40014 SET [email protected]_UNIQUE_CHECKS */;

/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;

/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;

/*!40101 SET [email protected]_COLLATION_CONNECTION */;

/*!40111 SET [email protected]_SQL_NOTES */;

-- Dump completed on 2007-0.6-22 20:11:48

mysqlimport

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

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

mysqlshow

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

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

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

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

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

Создание пользователей и наделение их правами доступа

В роли администратора MySQL вам чаще всего придется обслуживать пользователей: добавлять, и удалять пользователей СУРБД MySQL и управлять их полномочиями. Начиная с версии MySQL 3.22, правами доступа или полномочиями пользователей управляют в мониторе MySQL с помощью команд grant и revoke — задача, гораздо менее устрашающая, чем непосредственная корректировка таблиц прав доступа, которая требовалась в ранних версиях MySQL.

grant

Команда MySQL grant почти, хотя и не полностью, соответствует синтаксису стандарта SQL92. Далее приведен общий формат:

grant <привилегия> on <объект> to <пользователь> [identified by user-password] [with grant option];

В табл. 8.6 перечислено несколько значений прав доступа, которые могут быть предоставлены.

Таблица 8.6

Значение Описание alter Изменять таблицы и индексы create Создавать базы данных и таблицы delete Удалять данные из базы данных. drop Удалять базы данных и таблицы index Управлять индексами insert Вставлять данные в базу данных lock tables Разрешает блокировать таблицы select Извлекать данные update Изменять данные all Все вышеперечисленные

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

Объект, которому вы предоставляете данные права, обозначается как

databasename.tablename

и в лучших традициях Linux * — ссылка на любое имя, поэтому *.* означает все объекты в каждой базе данных, a foo.* — все таблицы в базе данных foo.

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

В синтаксисе языка SQL специальный символ % — символ подстановки, во многом сходный, с символом * в среде командной оболочки. Вы можете формировать отдельные команды для каждого требуемого набора прав доступа, но если, например, вы хотите предоставить доступ пользователю rick с любого компьютера в домене wiley.com, пользователя rick можно описать как

[email protected]'%.wiley.com'

Символ подстановки % всегда следует заключать в кавычки для того, чтобы отделить его от остальных текстовых данных.

1 ... 85 86 87 88 89 90 91 92 93 ... 200
На этой странице вы можете бесплатно читать книгу Основы программирования в Linux - Нейл Мэтью бесплатно.
Похожие на Основы программирования в Linux - Нейл Мэтью книги

Оставить комментарий