Чтение онлайн

ЖАНРЫ

Основы программирования в Linux
Шрифт:
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 и составляющих ее базах данных.

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

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

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

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

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

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

grant
и
revoke
— задача, гораздо менее устрашающая, чем непосредственная корректировка таблиц прав доступа, которая требовалась в ранних версиях MySQL.

Поделиться с друзьями: