MySQL. Руководство администратора
Компания MySQL AB
Эта книга, написанная специалистами компании MySQL AB, является всеобъемлющим справочником по установке, обслуживанию и администрированию сервера баз данных MySQL. По сути — это официальная документация фирмы производителя. В книге рассмотрен весь спектр вопросов, касающихся администрирования MySQL, а также представлена информация, предназначенная для опытных пользователей и администраторов.
Как известно, MySQL занимает лидирующие позиции среди множества систем управления базами данных с открытым исходным кодом. Благодаря высокой производительности и простоте настройки, богатому выбору API-интерфейсов, а также функциональным средствам работы с сетями, сервер MySQL стал одним из наиболее удачных вариантов для разработки Web-приложений, взаимодействующих с базами данных.
Книга рассчитана на администраторов и разработчиков Web-приложений любой квалификации, а также на студентов и преподавателей соответствующих дисциплин.
Перевод с англ. - Москва, Издательский дом «Вильямс», 2005.
ISBN 5-8459-0805-1
Количество страниц: 624.
Содержание книги «MySQL. Руководство администратора»:
- 14 Об этой книге
- 14 От издательства
- 15 Глава 1. Общая информация
- 15 1.1. Что собой представляет это руководство
- 16 1.1.1. Соглашения, используемые в руководстве
- 18 1.2. Что такое система управления базами данных MySQL
- 19 1.2.1. История MySQL
- 20 1.2.2. Основные возможности MySQL
- 22 1.2.3. Стабильность MySQL
- 23 1.2.4. Размеры таблиц MySQL
- 25 1.2.5. Решение «проблемы 2000 года»
- 26 1.3. Компания MySQL AB
- 27 1.3.1. Бизнес-модель и услуги, оказываемые MySQL AB
- 30 1.3.2. Контактная информация
- 31 1.4. Поддержка и лицензирование MySQL
- 31 1.4.1. Поддержка, предоставляемая компанией MySQL AB
- 32 1.4.2. Авторские права и лицензии на MySQL
- 32 1.4.3. Лицензии на MySQL
- 35 1.4.4. Логотипы и торговые марки MySQL AB
- 37 1.5. План разработки MySQL
- 37 1.5.1. Кратко о MySQL 4.0
- 39 1.5.2. Кратко о MySQL 4.1
- 41 1.5.3. MySQL 5.0: Очередной разрабатываемый выпуск
- 41 1.6. MySQL и будущее (списки TODO)
- 41 1.6.1. Новые средства, запланированные для версии 4.1
- 42 1.6.2. Новые средства, запланированные для версии 5.0
- 43 1.6.3. Новые средства, запланированные для версии 5.1
- 43 1.6.4. Новые средства, запланированные на ближайшее будущее
- 46 1.6.5. Новые средства, запланированные на отдаленное будущее
- 47 1.6.6. Новые средства, которые не планируются к реализации
- 48 1.7. Источники информации по MySQL
- 48 1.7.1. Списки рассылки MySQL
- 56 1.7.2. Поддержка сообщества пользователей MySQL в IRC
- 56 1.8. Соответствие стандартам MySQL
- 57 1.8.1. Стандарты, которым соответствует MySQL
- 57 1.8.2. Выбор режимов SQL
- 57 1.8.3. Запуск MySQL в режиме ANSI
- 58 1.8.4. Расширения стандартного SQL в MySQL
- 61 1.8.5. Отличия MySQL от стандартного SQL
- 68 1.8.6. Как MySQL работает с ограничениями
- 70 1.8.7. Известные ошибки и недостатки дизайна MySQL
- 15 1.1. Что собой представляет это руководство
- 76 Глава 2. Установка MySQL
- 77 2.1. Общие вопросы установки
- 77 2.1.1. Операционные системы, поддерживаемые MySQL
- 79 2.1.2. Выбор дистрибутива MySQL для установки
- 90 2.1.3. Как получить MySQL
- 90 2.1.4. Проверка целостности пакета с помощью контрольных сумм MD5 или GnuPG
- 93 2.1.5. Расположение каталогов установки
- 95 2.2. Стандартная установка MySQL из бинарного дистрибутива
- 95 2.2.1. Установка MySQL под Windows
- 107 2.2.2. Установка MySQL под Linux
- 109 2.2.3. Установка MySQL под Mac OS X
- 112 2.2.4. Установка MySQL под NetWare
- 114 2.2.5. Установка MySQL в других Unix-подобных системах
- 117 2.3. Установка MySQL из исходного дистрибутива
- 118 2.3.1. Обзор установки из исходного дистрибутива
- 121 2.3.2. Типичные опции сценария configure
- 124 2.3.3. Установка из исходного дерева разработки
- 127 2.3.4. Решение проблем компиляции MySQL
- 131 2.3.5. Замечания по поводу потоков MIT-pthreads
- 133 2.3.6. Установка MySQL из исходных дистрибутивов под Windows
- 136 2.3.7. Компиляция клиентских программ MySQL под Windows
- 136 2.4. Настройки и тестирование после установки
- 137 2.4.1. Постустановочные процедуры под Windows
- 138 2.4.2. Постустановочные процедуры под Unix
- 144 2.4.3. Автоматический запуск и останов MySQL
- 146 2.4.4. Запуск сервера MySQL и устранение неисправностей
- 149 2.4.5. Защита начальных учетных записей MySQL
- 153 2.5. Модернизация MySQL и возврат к старой версии
- 154 2.5.1. Модернизация версии 4.1 до 5.0
- 154 2.5.2. Модернизация версии 4.0 до 4.1
- 159 2.5.3. Модернизация версии 3.23 до 4.0
- 163 2.5.4. Модернизация версии 3.22 до 3.23
- 165 2.5.5. Модернизация версии 3.21 до 3.22
- 166 2.5.6. Модернизация версии 3.20 до 3.21
- 167 2.5.7. Модернизация MySQL под Windows
- 167 2.5.8. Обновление таблиц привилегий
- 168 2.5.9. Копирование баз данных MySQL на другую машину
- 170 2.6. Замечания по поводу конкретных операционных систем
- 170 2.6.1. Замечания по поводу Linux
- 178 2.6.2. Замечания по Max OS X
- 179 2.6.3. Замечания по Solaris
- 183 2.6.4. Замечания по BSD
- 187 2.6.5. Замечания по другим системам Unix
- 196 2.6.6. Замечания по OS/2
- 197 2.6.7. Замечания по BeOS
- 197 2.7. Замечания по поводу установки Perl
- 197 2.7.1. Установка Perl под Unix
- 198 2.7.2. Установка ActiveState Perl под Windows
- 199 2.7.3. Проблемы использования интерфейса Perl DBI/DBD
- 77 2.1. Общие вопросы установки
- 202 Глава 3. Использование программ MySQL
- 202 3.1. Обзор программ MySQL
- 203 3.2. Запуск MySQL-программ
- 204 3.3. Задание опций программы
- 204 3.3.1. Использование опций в командной строке
- 206 3.3.2. Использование файлов опций
- 210 3.3.3. Использование переменных окружения для задания опций
- 210 3.3.4. Использование опций для установки программных переменных
- 212 Глава 4. Администрирование баз данных
- 212 4.1. Сервер MySQL и сценарии запуска сервера
- 212 4.1.1. Обзор серверных сценариев и утилит
- 213 4.1.2. Расширенный MySQL-сервер mysqld-max
- 215 4.1.3. Сценарий запуска сервера mysqld_safe
- 218 4.1.4. Сценарий запуска сервера mysql.server
- 219 4.1.5. Программа mysqld_multi для управления множественными MySQL-серверами
- 223 4.2. Конфигурирование сервера MySQL
- 223 4.2.1. Опции командной строки mysqld
- 232 4.2.2. Режим SQL сервера
- 234 4.2.3. Системные переменные сервера
- 260 4.2.4. Переменные состояния сервера
- 265 4.3. Общие проблемы безопасности
- 265 4.3.1. Общие принципы, касающиеся безопасности системы
- 268 4.3.2. Как защитить MySQL от хакеров
- 270 4.3.3. Опции запуска для mysqld, касающиеся безопасности
- 271 4.3.4. Вопросы безопасности и оператор LOAD DATA LOCAL
- 272 4.4. Система привилегий доступа MySQL
- 272 4.4.1. Функции системы привилегий
- 273 4.4.2. Как работает система привилегий
- 277 4.4.3. Привилегии, предоставляемые MySQL
- 281 4.4.4. Подключение к серверу MySQL
- 282 4.4.5. Управление доступом, этап первый: верификация подключения
- 286 4.4.6. Управление доступом, этап второй: верификация запросов
- 289 4.4.7. Когда изменения в привилегиях вступают в силу
- 289 4.4.8. Причины появления ошибок отказа в доступе (Access denied)
- 295 4.4.9 Хеширование паролей в MySQL 4.1
- 301 4.5. Управление учетными записями пользователей MySQL
- 301 4.5.1. Имена пользователей и пароли в MySQL
- 303 4.5.2. Добавление новых учетных записей в MySQL
- 306 4.5.3. Удаление пользовательских учетных записей из MySQL
- 307 4.5.4. Ограничение ресурсов учетной записи
- 309 4.5.5. Назначение паролей для учетных записей
- 310 4.5.6. Как обезопасить свой пароль
- 311 4.5.7. Использование безопасных соединений
- 318 4.6. Предотвращение аварий и восстановление системы
- 318 4.6.1. Резервное копирование баз данных
- 320 4.6.2. Обслуживание и восстановление таблиц после аварий
- 333 4.6.3. Установка графика обслуживания таблиц
- 334 4.6.4. Как получить информацию о таблице
- 340 4.7. Локализация MySQL и интернациональное применение
- 340 4.7.1. Набор символов для представления данных и сортировки
- 341 4.7.2. Установка языка сообщений об ошибках
- 342 4.7.3. Добавление нового набора символов
- 343 4.7.4. Массивы определения символов
- 344 4.7.5. Поддержка функций по упорядочиванию строк
- 344 4.7.6. Поддержка многобайтных символов
- 344 4.7.7. Проблемы с наборами символов
- 345 4.8. Журнальные файлы MySQL
- 346 4.8.1. Журнал ошибок
- 346 4.8.2. Общий журнал запросов
- 347 4.8.3. Журнал регистрации обновлений
- 348 4.8.4. Бинарный журнал регистрации
- 351 4.8.5. Журнал медленных запросов
- 351 4.8.6. Обслуживание журнальных файлов
- 352 4.9. Запуск нескольких серверов MySQL на одном и том же компьютере
- 354 4.9.1. Запуск нескольких серверов в Windows
- 358 4.9.2. Запуск нескольких серверов под Unix
- 359 4.9.3. Использование клиентских программ в окружении с несколькими серверами
- 360 4.10. Кэш запросов MySQL
- 361 4.10.1. Как работает кэш запросов
- 362 4.10.2. Опции SELECT для кэша запросов
- 362 4.10.3. Конфигурирование кэша запросов
- 363 4.10.4. Состояние кэша запросов и его обслуживание
- 212 4.1. Сервер MySQL и сценарии запуска сервера
- 365 Глава 5. Репликация в MySQL
- 365 5.1. Введение в репликацию
- 366 5.2. Обзор реализации репликации
- 367 5.3. Детали реализации процесса репликации
- 369 5.3.1. Состояние потока репликации главного сервера
- 369 5.3.2. Состояние потока репликации ввода/вывода подчиненного сервера
- 371 5.3.3. Состояние потока SQL репликации подчиненного сервера
- 371 5.3.4. Журнал ретрансляции и файлы состояния
- 373 5.4. Настройка репликации
- 378 5.5. Совместимость репликации между версиями MySQL
- 378 5.6. Модернизация установок репликации
- 379 5.6.1. Модернизация репликации до версии 4.0 или 4.1
- 379 5.6.2. Модернизация репликации до версии 5.0
- 380 5.7. Возможности репликации и известные проблемы
- 384 5.8. Опции запуска репликации
- 393 5.9. Часто задаваемые вопросы по репликации
- 399 5.10. Поиск неисправностей в системе репликации
- 400 5.11. Сообщения об ошибках репликации
- 402 Глава 6. Оптимизация MySQL
- 402 6.1. Обзор оптимизации
- 403 6.1.1. Ограничения и компромиссы конструкции MySQL
- 403 6.1.2. Проектирование переносимых приложений
- 405 6.1.3. Для чего мы использовали MySQL
- 405 6.1.4. Набор тестов производительности MySQL
- 406 6.1.5. Использование собственных тестов производительности
- 407 6.2. Оптимизация операторов SELECT и других запросов
- 408 6.2.1. Синтаксис оператора EXPLAIN (получение информации о SELECT)
- 415 6.2.2. Ожидаемая производительность запросов
- 416 6.2.3. Скорость выполнения запросов SELECT
- 416 6.2.4. Как MySQL оптимизирует конструкцию WHERE
- 418 6.2.5. Как MySQL оптимизирует выражения OR
- 419 6.2.6. Как MySQL оптимизирует IS NULL
- 419 6.2.7. Как MySQL оптимизирует DISTINCT
- 420 6.2.8. Как MySQL оптимизирует LEFT JOIN и RIGHT JOIN
- 421 6.2.9. Как MySQL оптимизирует ORDER BY
- 423 6.2.10. Как MySQL оптимизирует LIMIT
- 424 6.2.11. Как избежать сканирования таблиц
- 424 6.2.12. Скорость выполнения запросов INSERT
- 426 6.2.13. Скорость выполнения запросов UPDATE
- 427 6.2.14. Скорость выполнения запросов DELETE
- 427 6.2.15. Другие советы по оптимизации
- 430 6.3. Вопросы блокировки
- 430 6.3.1. Методы блокировки
- 433 6.3.2. Вопросы блокировки таблиц
- 435 6.4. Оптимизация структуры базы данных
- 435 6.4.1. Конструкторские решения
- 435 6.4.2. Делайте объем данных как можно меньше
- 436 6.4.3. Индексы столбцов
- 437 6.4.4. Составные индексы
- 438 6.4.5. Как MySQL использует индексы
- 441 6.4.6. Кэш ключей MyISAM
- 446 6.4.7. Как MySQL подсчитывает открытые таблицы
- 446 6.4.8. Как MySQL открывает и закрывает таблицы
- 447 6.4.9. Недостатки создания множества таблиц в одной базе данных
- 448 6.5. Оптимизация сервера MySQL
- 448 6.5.1. Настройка параметров системы и запуска
- 449 6.5.2. Настройка параметров сервера
- 451 6.5.3. Как компиляция и компоновка влияют на скорость MySQL
- 453 6.5.4. Как MySQL использует память
- 454 6.5.5. Как MySQL использует DNS
- 455 6.6. Вопросы использования дисков
- 456 6.6.1. Использование символических ссылок
- 402 6.1. Обзор оптимизации
- 460 Глава 7. Клиентские программы и утилиты MySQL
- 460 7.1. Обзор сценариев и утилит клиентской стороны
- 461 7.2. myisampack - генератор сжатых таблиц MySQL, доступных только для чтения
- 467 7.3. Инструмент командной строки mysql
- 471 7.3.1. Команды mysql
- 475 7.3.2. Запуск SQL-операторов из текстового файла
- 476 7.3.3. Советы по mysql
- 477 7.4. Программа администрирования MySQL-сервера mysqladmin
- 480 7.5. Утилита работы с бинарными журналами mysqlbinlog
- 483 7.6. Центр управления MySQL - mysqlcc
- 485 7.7. Программа обслуживания и восстановления таблиц mysqlcheck
- 487 7.8. Программа резервного копирования баз данных mysqldump
- 492 7.9. Программа резервного копирования базы данных mysqhotcopy
- 493 7.10. Программа импорта данных mysqlimport
- 495 7.11. Программа просмотра баз данных, таблиц и столбцов mysqlshow
- 497 7.12. Утилита объяснения кодов ошибок perror
- 497 7.13. Утилита замены строк replace
- 498 Глава 8. Механизмы хранения и типы таблиц в MySQL
- 500 8.1. Механизм хранения MyISAM
- 502 8.1.1. Опции запуска MyISAM
- 504 8.1.2. Пространство, необходимое для ключей
- 504 8.1.3. Форматы хранения данных в таблицах MyISAM
- 507 8.1.4. Проблемы, связанные с таблицами MyISAM
- 509 8.2. Механизм хранения MERGE
- 511 8.2.1. Проблемы, связанные с таблицами MERGE
- 513 8.3. Механизм хранения данных MEMORY (HEAP)
- 515 8.4. Механизм хранения данных BDB (BerkleyDB)
- 516 8.4.1. Операционные системы, поддерживающие BDB
- 516 8.4.2. Установка BDB
- 517 8.4.3. Опции запуска BDB
- 517 8.4.4. Характеристики таблиц BDB
- 520 8.4.5. Что должно быть исправлено в механизме хранения BDB
- 520 8.4.6. Ограничения при использовании таблиц BDB
- 520 8.4.7. Ошибки, которые могут возникать при использовании таблиц BDB
- 521 8.5. Механизм хранения ISAM
- 500 8.1. Механизм хранения MyISAM
- 523 Глава 9. Механизм хранения InnoDB
- 523 9.1. Обзор InnoDB
- 524 9.2. Контактная информация, касающаяся InnoDB
- 524 9.3. Таблицы InnoDB в MySQL 3.23
- 525 9.4. Конфигурация InnoDB
- 530 9.5. Опции запуска InnoDB
- 534 9.6. Создание табличного пространства InnoDB
- 535 9.6.1. Проблемы, связанные с инициализацией InnoDB
- 535 9.7. Создание таблиц InnoDB
- 536 9.7.1. Как использовать транзакции InnoDB в разных API-интерфейсах
- 537 9.7.2. Преобразование таблиц MyISAM в формат InnoDB
- 538 9.7.3. Как работают столбцы AUTO_INCREMENT в InnoDB
- 539 9.7.4. Ограничения внешнего ключа (FOREIGN KEY)
- 543 9.7.5. InnoDB и репликация в MySQL
- 544 9.7.6. Использование табличного пространства для каждой таблицы
- 546 9.8. Добавление и удаление файлов данных и файлов журналов InnoDB
- 547 9.9. Создание резервных копий и восстановление базы данных InnoDB
- 548 9.9.1. Принудительное восстановление
- 550 9.9.2. Контрольные точки
- 550 9.10. Перенос базы данных InnoDB на другой компьютер
- 551 9.11. Транзакционная модель InnoDB и блокирование
- 551 9.11.1. InnoDB и режим автоматической фиксации AUTOCOMMIT
- 551 9.11.2. InnoDB и уровень изоляции транзакций (TRANSACTION ISOLATION LEVEL)
- 553 9.11.3. Согласованное чтение без блокировки
- 554 9.11.4. Чтения с блокировкой: SELECT... FOR UPDATE и SELECT... LOCK IN SHARE MODE
- 555 9.11.5. Блокировка следующего ключа: устранение «проблемы с фантомом»
- 556 9.11.6. Пример работы согласованного чтения в InnoDB
- 557 9.11.7. Блокировка, устанавливаемая различными SQL-операторами в InnoDB
- 558 9.11.8. В каких случаях MySQL явно выполняет фиксацию или откат транзакции
- 559 9.11.9. Обнаружение взаимных блокировок и откат
- 559 9.11.10. Как справляться с взаимными блокировками
- 561 9.12. Советы по настройке производительности InnoDB
- 563 9.12.1. SHOW INNODB STATUS и мониторы InnoDB
- 568 9.13. Реализация многовариантности
- 568 9.14. Структуры таблиц и индексов
- 569 9.14.1. Физическая структура индекса
- 569 9.14.2. Буферизация вставок
- 570 9.14.3. Адаптивный хешированный индекс
- 570 9.14.4. Физическая структура записи
- 571 9.15. Управление файловым пространством и дисковый ввод-вывод
- 571 9.15.1. Дисковый ввод-вывод
- 572 9.15.2. Использование низкоуровневых устройств для табличного пространства
- 572 9.15.3. Управление файловым пространством
- 573 9.15.4. Дефрагментация таблицы
- 574 9.16. Обработка ошибок
- 574 9.16.1. Коды ошибок InnoDB
- 575 9.16.2. Коды ошибок операционной системы
- 577 9.17. Ограничения таблиц InnoDB
- 579 9.18. Поиск и устранение неполадок в InnoDB
- 580 9.18.1. Поиск и устранение неполадок в операциях словаря данных InnoDB
- 582 Глава 10. Введение в MaxDB
- 582 10.1. История MaxDB
- 282 10.2. Лицензирование и поддержка
- 583 10.3. Ссылки, касающиеся MaxDB
- 583 10.4. Базовые концепции MaxDB
- 583 10.5. Отличия возможностей MaxDB и MySQL
- 584 10.6. Средства взаимодействия между MaxDB и MySQL
- 584 10.7. Зарезервированные слова MaxDB
- 588 Приложение А. Поиск и устранение неполадок в программах MySQL
- 588 А.1. Как определить причину проблемы
- 590 А.2. Наиболее общие ошибки при работе с программами MySQL
- 590 А.2.1. Доступ запрещен
- 590 А.2.2. Невозможно подключиться к [локальному] серверу MySQL
- 592 А.2.3. Клиент не поддерживает протокол аутентификации
- 593 А.2.4. Пароль не принимается при интерактивном вводе
- 593 А.2.5. Хост «имя_хоста» заблокирован
- 594 А.2.6. Слишком много подключений
- 594 А.2.7. Недостаточно памяти
- 594 А.2.8. Сервер MySQL потерян
- 595 А.2.9. Слишком большой пакет
- 597 А.2.10. Ошибки связи и прерванные соединения
- 598 А.2.11. Переполнение таблицы
- 598 А.2.12. Невозможно создать/записать файл
- 599 А.2.13. Команды не синхронизированы
- 599 А.2.14. Игнорируется пользователь
- 599 А.2.15. Таблица «имя_таблицы» не существует
- 600 А.2.16. Невозможно инициализировать набор символов
- 600 А.2.17. Файл не найден
- 601 А.3. Вопросы, связанные с установкой
- 601 А.3.1. Проблемы компоновки клиентской библиотеки MySQL
- 603 А.3.2. Как запускать MySQL от имени обычного пользователя
- 603 А.3.3. Проблемы с правами доступа к файлам
- 604 А.4. Вопросы, касающиеся администрирования
- 604 А.4.1. Как сбросить пароль для root
- 606 А.4.2. Что делать, если MySQL терпит крах
- 609 А.4.3. Как MySQL обрабатывает переполнение диска
- 609 А.4.4. Где MySQL хранит временные файлы
- 610 А.4.5. Как защитить или изменить файл сокета MySQL /tmp/mysql.sock
- 611 А.4.6. Проблемы с временными зонами
- 612 Приложение Б. Переменные окружения
- 614 Предметный указатель
Инструкция как скачать книгу Компания MySQL AB: MySQL. Руководство администратора в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.