Нейл Мэтью - Основы программирования в Linux
- Название:Основы программирования в Linux
- Автор:
- Жанр:
- Издательство:«БХВ-Петербург»
- Год:2009
- Город:Санкт-Петербург
- ISBN:978-5-9775-0289-4
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Нейл Мэтью - Основы программирования в Linux краткое содержание
В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стандартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым.
Для начинающих Linux-программистов
Основы программирования в Linux - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Таблица 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.
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.
Интервал:
Закладка: