Зміст p>
Введення ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4 p>
1 . Загальний опис, запуск і настроювання прав доступу до баз даних MySQL ... ... ... ... ... ... ... ... .... ... ... .. ... .. 5 p>
2. Сценарій пакету MySQL ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... ... .. 10 p>
1. Основні команди ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 11 p>
2. Додаткові команди ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... ... ... .23 P>
3. Настройка mysqld (серверна частина пакета MySQL) ... ... ... ... ... ... ... ... .27 p>
4. Можливість мови Perl для роботи з MySQL сервером ... ... ... ... ... ... .. 29 p>
Висновок ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... .. ... ... ... .31 p>
Список літератури ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... ... ... ... ... ... ... ... .. 33 p>
Введення. P>
На сьогоднішній день СУБД MySQL є однією з найвідоміших,надійних і швидких з усього сімейства існуючих СУБД. Чому саме вона?
Однією з причин є правила її поширення - за неї не требаплатити гроші і розповсюджується вона разом зі своїми вихідними текстами,інша причина - це те, що MySQL щодо швидка СУБД. PostgreSql,наприклад, також поширюється під ліцензією * GNU GPL, але вона не отрималатакого широкого розповсюдження. Одна з причин - це помітнаповільність. Отже, дві головні причини популярності MySQL: ціна іпродуктивність. p>
MySQL написаний під десятки видів операційних систем. Це і FreeBSD,
OpenBSD, MacOS, OS/2, SunOS, Win9x/00/NT і Linux. Сьогодні MySQL особливопоширена на платформах Linux і Windows. Причому на останнійзустрічається набагато рідше. p>
Принцип роботи СУБД MySQL аналогічний принципу роботи будь-якої СУБД,що використовує SQL (Structured Query Language, мова структурованихзапитів) в якості командного мови для створення/видалення баз даних,таблиць, для поповнення таблиць даними, для здійснення вибірки даних. p>
Метою даної роботи є опис конфігурування,адміністрування і програмування СУБД MySQL і створення програмиілюструє можливості MySQL. p>
1. Загальний опис, запуск і настроювання прав доступу до баз даних MуSQL. P>
MySQL, як і будь-яка інша СУБД являє собою програму-сервер,яка знаходиться в пам'яті комп'ютера і обслуговує TCP порт. У випадку з
MySQL, номером порту буде число 3306. А клієнтська програма,будь то CGI-додаток на Perl або програмний продукт на C, з'єднується з
СУБД з цього порту і посилає йому рядки на SQL. Той у свою чергу їхінтерпретує, виконуючи необхідні дії, і відсилає результатизапиту назад клієнтові. У такий спосіб відбувається спілкування сервера базданих з клієнтськими програмами. p>
Для запуску MуSQL-сервера необхідно виконати файл mysqld.exe. Серверзапускається як безоконний фоновий процес. При цьому він залишається в пам'яті йобробляє запити від клієнтських додатків. p>
Для зупинки сервера слід виконати команду: mysqladmin-u root shutdown. p>
Якщо сервер не був зупинений коректно, то при наступному запуску вфото mysql.err буде додано запис про аварійне завершення.
Коректна зупинка сервера необхідна для збереження всіх даних, якізнаходяться в кешах MySQL. p>
MуSQL має розвинену систему доступу до баз даних. Користувачеві базиданих може бути надано доступ до всієї бази даних, окремимтаблиць і окремим стовпцях таблиць. Є розмежування на дії,які може виробляти користувач із записами. Для організації такоїскладною (на перший погляд) структури доступу використовується декілька таблицьв спеціальній базі даних. На підставі значень цих таблиць вибудовуєтьсяполітика надання доступу. p>
База даних, яку сервер MуSQL використовує для збереження внутрішньоїінформації про користувачів, за замовчуванням має ім'я mуsql. У цій базіданних визначені таблиці для зберігання інформації для користувача обліковихзаписів. Зміст БД mysql в таблиці 1.1. P>
Таблиця 1.1. Список таблиць прав доступу p>
| Порядок | Назва | Опис |
| перевірки | таблиці | |
| 1 | user | Список всіх користувачів сервера MySQL з правами |
| | | Доступу до всієї бази даних в цілому |
| 2 | db | Список баз даних з зіставленнями їм |
| | | Користувачами та їхніми привілеями на виконання |
| | | Операції |
| 3 | host | Список комп'ютерів, з яких можливий доступ до |
| | | Співставлений комп'ютера базі даних, і |
| | | Привілеї на виконання операцій, які можуть |
| | | Проводиться через з'єднання з цього комп'ютера |
| 4 | tables_priv | Список таблиць баз даних, до яких можливий |
| | | Доступ користувача |
| 5 | columns_priv | Список стовпців бази даних, до яких можливий |
| | | Доступ користувача | p>
Перевірка прав доступу здійснюється в порядку, зазначеному в таблиці 1.1.
Перш за все перевіряється, чи існує користувач і які можливості вінмає при управлінні базою даних (табліца1.2 .). p>
Таблиця 1.2. Поля таблиці user p>
| Назва поля | Тип | Значення | Опис |
| | | За | |
| | | Замовчуванням | |
| 1 | 2 | 3 | 4 |
| Host | Char (60) | | Комп'ютер користувача, з |
| | | | Якого дозволено підключення |
| User | Char (16) | | Ім'я користувача |
| Password | Char (16) | | Пароль користувача |
| Select_priv | Enum ( 'N', 'Y') | N | Привілеї на вибірку даних |
| | | | Оператором SELECT |
| Insert_priv | Enum ( 'N', 'Y') | N | Привілеї на вставку даних |
| | | | Оператором INSERT |
| Update_priv | Enum ( 'N', 'Y') | N | Привілеї на зміну даних |
| | | | Оператором UPDATE |
| Delete_priv | Enum ( 'N', 'Y') | N | Привілеї на видалення даних |
| | | | Оператором DELETE |
| Reload_priv | Enum ( 'N', 'Y') | N | Привілеї на перезапуск |
| | | | Сервера MySQL, а також скидання |
| | | | Даних з пам'яті на диск |
| 1 | 2 | 3 | 4 |
| Shutdown_priv | Enum ( 'N', 'Y') | N | Привілеї на відключення |
| | | | Сервера MySQL |
| Process_priv | Enum ( 'N', 'Y') | N | Привілеї на перегляд |
| | | | Стану поточних процесів |
| | | | Сервера |
| File_priv | Enum ( 'N', 'Y') | N | Привілеї, необхідні для |
| | | | Роботи з файловою системою, |
| | | | Наприклад оператором LOAD DATA |
| | | | INFILE |
| Grant_priv | Enum ( 'N', 'Y') | N | Привілеї, що дозволяють |
| | | | Користувачеві встановлювати |
| | | | Привілеї іншим користувачам |
| References_priv | Enum ( 'N', 'Y') | N | Привілеї, що дозволяють |
| | | | Посилатися на об'єкт |
| Index_priv | Enum ( 'N', 'Y') | N | Привілеї, необхідні для |
| | | | Індексування даних |
| Alter_priv | Enum ( 'N', 'Y') | N | Привілеї, що дозволяють |
| | | | Оновлювати дані | p>
Поля з типом Enum ( 'N', 'Y') вважаються дозволеними, якщо встановленозначення Y, і невирішеними, якщо встановлено на N. p>
Для адміністратора сервера MуSQL необхідні всі привілеї, для звичайнихкористувачів у даній таблиці зазвичай не дозволена жодна з привілеї,тобто Звичайні користувачі не можуть змінювати конфігурацію сервера MySQL.
Винятком можна вважати привілеї File_priv, якщо користувач активнопрацює з файловою системою. p>
Поле host може бути описано як IP-адреса або ім'я, а також може бутипорожнім. В імені комп'ютера і в імені користувача дозволяється застосуваннярегулярних виразів. p>
Паролі зберігаються в зашифрованому вигляді і не мають функції зворотногодешифрування. Для того щоб задати пароль, необхідно використовувати функціюpassword (). p>
Якщо привілеї на перегляд процесів сервера не вирішені, тодікористувач може бачити лише власні процеси. p>
На етапі перевірки значень таблиці user пропускаються для подальшоїобробки тільки ті сполуки, у яких поля Host, User і значенняфункції password () від значення пароля, отриманого від клієнта, збігаються. p>
Подальша обробка наводиться в таблиці db. На цьому етапівизначаються привілеї, якими володіє користувач для роботи зконкретною базою даних (табліца. 1.3). p>
Таблиця 1.3. Привілеї для роботи з базою даних p>
| Назва поля | Тип | Значення | Опис |
| | | За | |
| | | Замовчуванням | |
| Host | | | Адреса комп'ютера |
| | | | Користувача, з якого |
| | | | Дозволено підключення |
| Db | | | Ім'я бази даних |
| User | | | Ім'я користувача |
| Select_priv | Enum ( 'N', 'Y') | N | Привілеї на вибірку даних |
| | | | Оператором SELECT |
| Insert_priv | Enum ( 'N', 'Y') | N | Привілеї на вставку даних |
| | | | Оператором INSERT |
| Update_priv | Enum ( 'N', 'Y') | N | Привілеї зміни даних |
| | | | Оператором UPDATE |
| Delete_priv | Enum ( 'N', 'Y') | N | Привілеї на видалення даних |
| | | | DELETE |
| Create_priv | Enum ( 'N', 'Y') | N | Привілеї, необхідні для |
| | | | Створення таблиць оператором |
| | | | CREATE TABLE |
| Drop_priv | Enum ( 'N', 'Y') | N | Привілеї, необхідні для |
| | | | Видалення таблиць оператором |
| | | | DROP TABLE |
| Grant_priv | Enum ( 'N', 'Y') | N | Привілеї, що дозволяють |
| | | | Користувачеві встановлювати |
| | | | Привілеї іншим |
| | | | Користувачам |
| References_priv | Enum ( 'N', 'Y') | N | Привілеї, що дозволяють |
| | | | Посилатися на об'єкт |
| Index_priv | Enum ( 'N', 'Y') | N | Привілеї, необхідні для |
| | | | Індексування даних |
| Alter_priv | Enum ( 'N', 'Y') | N | Привілеї, що дозволяють |
| | | | Оновлювати дані | p>
Привілеї, вказані в таблиці db, перекривають значення, отримані втаблиці user, саме тому користувачі можуть не мати жодноїпривілеї в таблиці user. p>
Один користувач може мати кілька різних адрес, з якихможе здійснюватися підключення, тому на даному етапі перевіряєтьсязначення Host. Якщо значення поле Host пусто, тоді проводитьсядодаткова перевірка в таблиці host. Таблиця Host ідентична таблиці Db,за винятком того, що в ній відсутня полі User. Стовпці таблиці hostаналогічні стовпцях таблиці db, різниця полягає лише в тому, що дані зтаблиці host при збігу полів Host і Db мають більш високий пріоритет,і перекривають раніше встановлені значення. p>
MySQL сервер дозволяє встановлювати обмеження на доступ до окремихтаблиць і стовпців таблиці (ця інформація зберігається в таблицях tables_privі columns_priv), але збільшення кількості перевірок призводить до зменшенняпродуктивності. p>
2. Сценарій пакету MySQL. P>
СУБД MySQL постачається з наступними основними програмами іскриптами: p>
. mysql p>
. mysqlaccess p>
. mysqladmin p>
. mysqld p>
. mysqldump p>
. mysqlshow p>
. isamchk p>
. isamlog p>
. safe_mysqld p>
Ще є кілька утиліт. Вони не життєво важливі для MySQL, алезабезпечують корисні додаткові функціональні можливості. p>
. comp_err p>
. msql2mysql p>
. mysqlbug p>
. perror p>
. replace p>
. which1 p>
. zap p>
2.1. Основні команди p>
mysql p>
Клієнтська програма MySQL. P>
Запуск: mysql [OPTIONS] database p>
ОПИС: p>
Клієнтська частина СУБД MySQL названа MySQL. Вона забезпечує інтерфейскомандного рядка з СУБД MySQL, і можливість неінтерактивному пакетноїобробки. p>
Програмою mysql підтримуються наступні опції. Можна використовуватиабо "короткий" одиночний символ або більш детальну версію.
| -?, - Help | Довідка. |
|-d, - debug = [options] | Вивести в протокол налагоджувальну інформацію. В |
| | Загальному вигляді 'd: t: o, filename `. |
|-d, - debug-info | Вивести налагоджувальну інформацію при виході з |
| | Програми. |
|-e, - exec | Виконати команду і вийти, неявна форма |
| | Опції - batch. |
|-f, - force | Продовжити, навіть якщо є SQL помилка. |
|-h, - hostname = [hostname] | Визначає ім'я сервера, з яким необхідно |
| | З'єднатися. |
|-P, - port = [port] | Порт, для з'єднання з сервером MySQL. |
|-p, - password = [password] | Пароль користувача, для з'єднання з |
| | Сервером MySQL. Не повинно бути пробілу між |
| |-P і паролем. |
|-q, - quick | Швидкий (небуферізованний висновок), може |
| | Сповільнити сервер, якщо висновок призупинено. |
|-s, - silent | Працювати мовчки (придушити висновок). |
|-u, - user = [user] | Ім'я користувача для з'єднання з сервером |
| | MySQL. Необов'язково, якщо ім'я користувача |
| | Таке ж, як логін. За замовчуванням логін |
| | Використовується в якості імені користувача. |
|-v, - verbose | Докладний висновок. -v опція може бути подвоєна |
| | Або ранок для більш детального виводу. |
|-w, - wait | Якщо підключення зазнає невдачі, то |
| | Почекати і повторити спробу. |
|-B, - batch | Виконати в пакетному режимі. Ніяких |
| | Запитів і ніяких помилок у STDOUT. |
| | Встановлюється автоматично при читанні |
| | З/запису в канал. Результати будуть виведені |
| | У форматі з поділом табуляцією. Одна |
| | Рядок результату відповідає одному рядку |
| | Виведення. |
|-I, - help | Довідка, еквівалент -?. |
|-V, - version | Вивести інформацію про версію пакету. | p>
mysqlaccess p>
Перевірка прав доступу користувача. p>
СИНТАКСИС: mysqlaccess [host] [user] [db] OPTIONS p>
ОПИС: p>
Скрипт mysqlaccess використовується, щоб внести до списку привілеїкористувача для конкретної бази даних. Це дає інформацію, яка можебути корисна при діагностуванні проблем з доступом користувачів до даноїбазі даних. p>
Скрипт mysqlaccess підтримує наступні параметри (можнавикористовувати "короткий" одиночний символ або більш детальну версію):
| -?, - Help | Довідка. |
|-v, - version | Інформація про версії |
|-u, - user =... | Ім'я користувача для доступу до бази даних. |
|-p, - password =... | Пароль користувача, для з'єднання з |
| | Сервером MySQL. |
|-h, - host =... | Ім'я сервера, використовується для перевірки прав |
| | Доступу. |
|-d, - db =... | Ім'я бази даних, що використовується для перевірки |
| | Прав доступу. |
|-U, - superuser =... | Логін адміністратора. |
|-P, - spassword =... | Пароль адміністратора. |
|-b, - brief | Вивести короткі відомості про таблицю. |
| - relnotes | Вивести замітки з реалізації. |
| - plan | Вивести ідеї для майбутніх реалізацій. |
| - howto | Вивести приклади використання `mysqlaccess '|
| - debug = N | Рівень налагодження N (0 .. 3) | p>
Необхідно вказати принаймні логін та ім'я бази даних,які потрібно перевірити. Якщо ім'я сервера не задано, то мається на увазі ім'я
'localhost'. p>
mysqladmin p>
Виконує адміністративні функції. p>
СИНТАКСИС: mysqladmin [OPTIONS] command command ... p>
ОПИС: p>
Програма mysqladmin використовується, для керування різними аспектамифункціонування СУБД MySQL. Можливі наступні опції (можна використовувати
"короткий" одиночний символ або більш детальну версію):
| -?, - Help | Довідка. |
|-d, - debug = [options] | Вивести в протокол налагоджувальну інформацію. В |
| | Загальному вигляді 'd: t: o, filename `. |
|-f, - force | Не запитувати підтвердження при пропуску |
| | Таблиці. |
|-h, - host = [hostname] | Ім'я сервера, якщо не localhost. |
|-i, - sleep = [seconds] | Виконати кілька разів з паузою в |
| | [Секунд] між ними. |
|-p, - password [password] | Пароль користувача, для з'єднання з |
| | Сервером MySQL. Зверніть увагу, що не |
| | Повинно бути пробілу між-p і паролем. |
|-u, - user = [user] | Ім'я користувача. Якщо не вказано, |
| | Використовується поточний логін. |
|-P, - port = [port] | Порт, для з'єднання з сервером MySQL. |
|-V, - version | Вивести інформацію про версію. | p>
Крім цього, програма mysqladmin підтримує наступні команди:
| create [ім'я бази даних] | Створити базу даних. |
| drop [ім'я бази даних] | Видалити базу даних (разом з усіма |
| | Таблицями). |
| processlist | Вивести відомості про працюючі потоках MySQL. |
| reload | Перечитати настройки і очистити всі кеші. |
| shutdown | Завершити роботу СУБД MySQL. Всі запущені |
| | MySQL-сесії позначаються як 'killed'. Це |
| | Означає, що всі потоки, які |
| | Простоюють в даний час, будуть закриті |
| | Негайно, а управління потоками буде |
| | Закрито, коли вони досягнуть точок |
| | Завершення, визначених сервером. Клієнти |
| | Отримають повідомлення про помилку 'mysql server |
| | Has gone away '. |
| status | Вивести коротке повідомлення про статус |
| | Сервера. | p>
mysqld p>
Серверна частина пакета MySQL (mysqld). p>
СИНТАКСИС: mysqld [OPTIONS] p>
ОПИС: p>
Програма mysqld є ядром СУБД MySQL. Вона запускається як демонв системі і приймає підключення з клієнтських програм, виконуючи запитиі повертаючи результати. Вона багатопотокова, тобто обробить більше ніжодин запит одночасно. p>
Може спостерігатися спад продуктивності при використанні опції --log-isam, оскільки при цьому дуже багато що пишеться в файл протоколу.
Неперіодичні зміни, оновлення та видалення можуть зменшитипродуктивність на 5-10%. Продуктивність може сильно знизитися наоновлення, що вимагають великої кількості одночасних змін. p>
Опція - log-isam може використовуватися, для копіювання бази даних.
ISAM журнали можуть стати ДУЖЕ великими. P>
Кожна операція UPDATE, DELETE і INSERT має заголовок у 13 байтдодатково до команди. p>
Кожна відкрита таблиця вимагає дев'ять байтів плюс довжина імені файлутаблиці. Це необхідно тільки для таблиць, які ще не в кеші таблиць. P>
Крім того будуть матися одинадцять байтів додатково для будь-якихкоманд, які кешує/блокують таблиці. Ці події зазвичай викликанівнутрішніми командами mysql. Найчастіше, коли використовується SELECT. P>
У більшості випадків потрібно виконувати mysqld з скрипта safe_mysqld. P>
Програма mysqld підтримує наступні опції командного рядка:
| -?, - Help | Довідка |
| - #, - Debug = [options] | Вивести в протокол налагоджувальну інформацію. |
| | В загальному вигляді 'd: t: o, filename `. |
|-b, - basedir = [path] | Повне ім'я каталогу в який встановлений |
| | Пакет. |
|-h, - datadir [homedir] | Повне ім'я каталогу в якому зберігаються |
| | Бази даних. |
|-l, - log = [filename] | Файл протоколу запитів до баз |
| | Даних і підключень. |
| - log-isam = [filename] | Файл протоколу змін isam. |
|-O, - set-variable var = option | Встановити змінну. Див нижче. |
|-L, - language = [language] | Значення за замовчуванням 'english /'. Може |
| | Бути так само 'swedish /', |
| | 'Germany /', 'french /' або 'czech /'. |
| | Поточний список можна побачити фото |
| | Підкаталог share/mysql каталогу, в |
| | Який встановлений MySQL. |
|-P, - port = [port] | Порт для з'єднання. |
|-T, - debug-info | Вивести налагоджувальну інформацію. |
| - skip-new-routines | Не использовать нові можливості цієї |
| | Версії. |
| - skip-grant-tables | Ігнорувати таблиці надання |
| | Доступу. Це дає будь-якому ПОВНИЙ доступ до |
| | Всім таблиць. |
| - skip-locking | Не використовувати блокування системи. Може |
| | Дати кращу ефективність, але не повинен |
| | Використовуватися разом з isamchk. ТОБТО, |
| | Спочатку зупиніть сервер. |
| - skip-name-resolve | Ця опція змусить mysqld приймати |
| | Адреси IP тільки тих серверів, які |
| | Явно вказані в базі даних привілеїв |
| | Mysql. DNS можна більш-менш просто |
| | Хакнуть, а ця опція дозволяє уникнути |
| | Ряду проблем, якщо прикладна програма |
| | Вимагає високого рівня захисту. |
| - skip-networking | Використовувати підключення тільки через |
| | Інтерфейс localhost. Ця опція не буде |
| | Працювати з MIT потоками. Якщо підключення |
| | До бази даних будуть тільки локальні, то |
| | Використання цієї опції захистить від |
| | Створення віддалених підключень. |
| - skip-unsafe-select | Пропустити можливо небезпечні оптимізації. |
| - socket = [socket] | Назва сокет-файлу для MySQL. Недоступно при |
| | Використанні версії MySQL, |
| | Скомпільований з MIT потоками. |
| | Приклад: |
| | Mysqld - socket =/tmp/mysql.sock |
|-V, - version | Вивести інформацію про версію. | p>
Якщо опція-h не визначена, mysql буде вважати, що основною каталог
= "/ My/data/sql/mysql". P>
Всі бази даних розміщені в каталозі [homedir]/[ім'я бази даних]. P>
Опція-l повинна використовуватися обережно. Коли використовується сервер, звеликим обсягом транзакцій, цей файл може стати великим дуже швидко.
Якщо не зазначається ім'я logfile, використавши-l mysqld будеписати протокол у файл [homedir]/[hostname]. log. p>
Опція-O дозволяє визначати значення для наступних параметрів:
| Назва | Значення за замовчуванням |
| back_log | 5 |
| keybuffer | 1048568 |
| max_allowed_packet | 65536 |
| net_buffer_length | 8192 |
| max_connections | 90 |
| table_cache | 64 |
| recordbuffer | 131072 |
| sortbuffer | 2097144 |
| max_sort_length | 1024 | p>
mysqldump p>
Дамп змісту бази даних. p>
СИНТАКСИС: mysqldump [OPTIONS] [database [table [field ]]] p >
ОПИС: p>
Програма mysqldump використовується для створення дампа змісту базиданих MySQL. Вона пише інструкції SQL у стандартний вивід. Ці інструкції
SQL можуть бути змінені на файл. Можна резервувати базу даних MySQL,використовуючи mysqldump, але при цьому необхідно переконатися, що у цей момент збазою даних не виконується ніяких інших дій. p>
Програма mysqldump підтримує наступні параметри (можнавикористовувати коротку або детальну версію):
| - #, - Debug = [options] | Вивести в протокол налагоджувальну інформацію. В |
| | Загальному вигляді 'd: t: o, filename `. |
| -?, - Help | Довідка. |
|-c, - compleat-insert | генерує повні інструкції insert (не |
| | Виключаючи значень, які відповідають |
| | Значень стовпця за замовчуванням). |
|-h, - host = [hostname] | Помилка з'єднання з сервером hostname. |
|-d, - no-data | Експорт тільки схеми інформації (виключаючи |
| | Дані). |
|-t, - no-create-info | Експорт тільки даних, виключаючи інформацію |
| | Для створення таблиці. Протилежність-d. |
|-p, - password = [password] | Пароль користувача, для з'єднання з |
| | Сервером MySQL. Зверніть увагу, що не |
| | Повинно бути пробілу між-p і паролем. |
|-q, - quick | Не буферізованние результати запиту, дамп |
| | Видати безпосередньо до STDOUT. |
|-u, - user = [username] | Ім'я користувача. Якщо не задано, |
| | Використовується поточний логін. |
|-v, - verbose | Вивести докладну інформацію щодо |
| | Різних стадій виконання mysqldump. |
|-P, - port = [port] | Порт для зв'язку. |
|-V, - version | Інформація про версію. | p>
Можна направити висновок mysqldump в клієнтську програму MySQL, щобкопіювати базу даних. Необхідно переконатися, що база даних не змінюєтьсяв цей час, інакше вийде суперечлива копію! p>
mysqlshow p>
Показати інформацію про сервер, бази даних або таблиці. p>
СИНТАКСИС: mysqlshow [OPTIONS] [database [ table [field ]]] p>
ОПИС: p>
Програма mysqlshow може використовуватися, щоб показати, з якимибазами даних MySQL працює, які таблиці ця база даних містить, іякі поля є в таблиці в даній базі даних. p>
Програма mysqlshow підтримує наступні параметри:
| - #, - Debug = [options] | Вивести в протокол налагоджувальну інформацію. В |
| | Загальному вигляді 'd: t: o, filename `. |
| -?, - Help | Довідка. |
|-h, - host = [hostname] | Зв'язатися з сервером hostname. |
|-k, - key | Вивести ключ (і) для таблиць (и). |
|-p, - password = [password] | Пароль користувача, для з'єднання з |
| | Сервером MySQL. |
|-u, - user = [username] | Ім'я користувача. Якщо не задано, |
| | Використовується поточний логін. |
|-P, - port = [port] | Порт для зв'язку. |
|-V, - version | Інформація про версію. | p>
Mysqlshow без аргументів покаже всі бази даних. Mysqlshow зім'ям бази даних покаже всі таблиці в ній. Mysqlshow з ім'ям базиданих і ім'ям таблиці покаже схему цієї таблиці. p>
Якщо останній параметр містить '?' або '*', то вони використовуються якпідстановки знаки. p>
isamchk p>
Перевірка, відновлення, керування і збір статистики по таблицях
MySQL. P>
СИНТАКСИС: isamchk [-? AdeiqrsvwzIV] [-k #] [-O xxxx = size] [-Si] [-Sr #] p>
[-O keybuffer = #] [-O readbuffer = #] [-O writebuffer =#] p>
[-O sortbuffer = #] [-O sort_key_blocks = #] files p>
ОПИС: p >
Програма isamchk використовується для перевірки несуперечності таблицьі усунення будь-яких проблем, які це може викликати. Isamchk може такожвикористовуватися, щоб посилити таблиці в базах даних, які містять BLOBабо поля символів змінної довжини. Це необхідно тільки, якщо частододаються й видаляються записи з цих таблиць. p>
Необхідно зупинити СУБД MySQL перед запуском isamchk з єдинимперемикачем-r. p>
Взагалі, потрібно використати перемикач-rq для ремонту таблиці,тому що він виконує "оперативний" ремонт. Для такого ремонту не потрібнотимчасового місця в пам'яті, таким чином він проходить швидко, тому щоisamchk не копіює файл даних. p>
Перед початком роботи, треба перейти в каталог з таблицею, якапотребує перевірки та/або ремонту. У загальному випадку, це $ DATADIR/DBNAME. P>
Опції програми isamchk:
| - # | Вивести в протокол налагоджувальну інформацію. У загальному вигляді |
| | 'D: t: o, filename `. |
| -? | Довідка. |
|-a | Аналіз. Використовується для для оптимізації розміщення |
| | Таблиць. |
|-d | Інформація про таблицю. |
|-e | Розширена перевірка. Під час запуску з цією опцією треба |
| | Зупинити демон mysqld. |
|-f | Примусово створити тимчасовий файл. Ця опція викличе |
| | 'Isamchk-r', якщо таблиця зруйнована. |
|-k # | Використовувані ключі. |
|-i | Додаткова інформація. |
|-q | Швидка перевірка. |
|-r [o] | Відновлення, Ця опція також ущільнити внутрішні |
| | Індекси B-Tree, використовувані MySQL. Використовуйте цю |
| | Опцію, щоб зменшити місце, займане таблицею, за |
| | Рахунок видалення зайвих індексів. |
|-s | Працювати мовчки. |
|-u | Розпакувати упакований файл. |
|-v | Докладний висновок. Використовується разом з іншими |
| | Параметрами, щоб отримати більшу кількість |
| | Інформації. Ви можете встановити більшу кількість символів v |
| | Для підвищення обсягу видаваної інформації (наприклад, |
| | Vv). |
|-w | Чекати, якщо таблиця заблокована. |
|-I | Довідка. |
|-S [ir] # | Сортувати індекс/запису по ключу #. Ця опція |
| | Оптимізує розміщення даних в таблиці. |
|-V | Інформація про версію. |
|-O var = # | Опція оптимізації var = # [k] [m] | p>
Можна використовувати другу опцію '-q', щоб використовувати старийфайл даних. -ro використовує старий метод відновлення: повільніше, аленадійніше-r. -r може виправити майже всі помилки, крім унікальних ключів,які виявилися все ж таки не унікальними. Якщо-f заданий при перевірцітаблиці, то таблиці з помилками будуть автоматично виправлені. p>
ПРИКЛАДИ:
| isamchk-r [table_name] | Забрати всі дірки, які сформувалися |
| | Через використання BLOBS або VARCHARS. |
| | Також встановити які ще є проблеми. |
| isamchk-ei [table_name] | Перевірити таблицю і відобразити |
| | Статистику. |
| isamchk [table_name] | Знайти більшість помилок. |
| isamchk-rq [table_name] | Оновити тільки індексний файл. Швидко, |
| | Але не виправляє помилки у файлі даних. |
| isamchk-d-v [table_name] | Опис таблиці. |
| isamchk-rq-Si [table_name] | Повна оптимізація таблиці [table_name]. | p>
isamlog p>
Отримання статистики, і використання isam-журналів. p>
СИНТАКСИС: isamlog [-? iruvIV] [-c #] [-f #] [-p #] [-F filepath /] [-o #] p>
[-R file recordpos] [-w write_file] [log-filename] p>
ОПИС: p>
Ця програма використовується разом з опцією - log-isam = file_name демонаmysqld. p>
Файл file_name буде зберігати протокол всіх змін для всіх таблиць.
Програма isamlog може бути використана для отримання інформації про цефото і оновити всі таблиці і бази даних. p>
Щоб відновити базу даних, потрібна копія, яка містить вашубазу даних до того, як mysqld згенерував ISAM журнал, або повний набір
ISAM журналів з початку роботи вашої бази даних.
| -? or-I | Довідка. |
|-V | Інформація про версію. |
|-c # | Виконати тільки # команд. |
|-f # | Максимальне число відкритих файлів. Якщо відкриється |
| | Більше ніж # файлів, то зайві будуть автоматично |
| | Закриті і знову відкрито в міру необхідності. |
|-F [path] | Файл протоколу ISAM містить повний шлях до таблиць. |
| | Ви можете використовувати цю опцію, щоб скасувати |
| | Збережений шлях. |
| | Приклад: |
| |-F '/ var/mirror /' змусить isamlog працювати з файлами в |
| |/Var/mirror, а не з тими, які вказані в збереженому |
| | Шляху. |
|-i | Вивести більш детальну інформацію. |
|-o # | Почати зі зміщення #. |
|-p # | Видалити # компонент зі шляху. |
|-r | Ігнорувати всі помилки, з якими стикаємося в |
| | Протягом модифікацій. |
|-R | Вказати позицію у файлі ISAM, про яку треба видати |
| | Відомості. |
| | Приклад: |
| | Isamlog-R/usr/local/data/mysql/user.ISM 1234 |
| | Виведе всі зміни в таблиці |
| |/Usr/local/data/mysql/user, які знайдені в позиції |
| | 1234. |
|-u | Намагатися модифіковані всі таблиці. Зупинитися, якщо |
| | Зустрінута помилка. |
|-v | Докладний висновок. Ви можете встановити більшу кількість |
| | Символів v для підвищення обсягу видаваної інформації |
| | (Наприклад, vv). |
|-w [filename] | Записати всі записи вставлені або змінені опцією |
| |-R в [filename]. Цей параметр може використовуватися, щоб |
| | Отримати двійковий файл всіх вставок і модифікацій |
| | Конкретної таблиці для використання в налагодженні. | p>
safe_mysqld p>
Скрипт для запуску демона mysqld. p>
СИНТАКСИС: safe_mysqld [options to mysqld] p>
ОПИС: p>
Цей скрипт зазвичай виконується при початковому завантаженні, щоб запуститиmysqld. Якщо необхідно, щоб DATADIR був поміщений в ієрархії каталозі
MySQL, що і mysqld, потрібно підправити DATADIR в цьому скрипті. P>
2.2. Додаткові команди p>
comp_err p>
генерує файли повідомлень про помилки національною мовою. P>
СИНТАКСИС: comp_err [-?] [-I] [-V] fromfile [ s] tofile p>
ОПИС: p>
Ця програма використовується для компіляції текстових файлів якімістять відповідність між кодами помилок mysql і текстовими повідомленнями процих помилках у формат, який розуміє mysql. Це потрібно для зміни вжеіснуючого файлу повідомлень або створення такого файлу для іншої мови. p>
ПРИКЛАД: comp_err share/english/errmsg.txt share/english/errmsg.sys p>
msql2mysql p>
Виконує початкове перетворення mSQL скрипта в MySQL. p>
СИНТАКСИС: msql2mysql [filename] p>
ОПИС: p>
Скрипт msql2mysql використовується як перший крок при портування msqlскриптів в MySQL. p>
Програма msql2mysql - фактично досить простий скрипт, якийвикористовує команду replace, яка поставляється з СУБД MySQL, щобзамінити mSQL звернення до функції на їх MySQL еквіваленти. Змінюються тількиімена, додаткові параметри не додаються. p>
mysqlbug p>
генерує звіт про помилки. p>
СИНТАКСИС: mysqlbug [address] p>
ОПИС:
Цей скрипт використовується при повідомленні про помилки в MySQL. Вінгенерує форму, яку для заповнення поміщає в будь-який текстовийредактор, вказаний у змінній $ VISUAL (Vi за замовчуванням). Форма будемістити автоматично згенеровану інформацію щодо вашоїсистеми, включаючи версії OS і MySQL та архітектуру. При закінченні, формабуде відправлена поштою в список розсилки MySQL. p>
perror p>
Виводить коротке текстове пояснення числового коду помилки. p>
СИНТАКСИС: p>
$ perror [-? vIV] [errorcodes] p>
ОПИС: p>
Програма perror надає короткі текстові пояснення числовихкодів помилок, що повертаються системою або СУБД MySQL. p>
Програма perror підтримує опції:
| -? or-I | Довідка. |
|-v | Докладна інформація. |
|-V | Інформація про версію. | p>
replace p>
СИНТАКСИС: replace [-? svIV] from to from to ... - [Files] p>
ОПИС: p>
Програма program використовується скриптом msql2mysql. Replace може бутивикористана для заміни рядки на місці у файлі або отримувати рядок черезканал (пайп), проводити заміну і виводити результат в STDOUT. p>
Можливі наступні опції:
| -? | Довідка. |
|-s | Працювати мовчки (ніяких статусних повідомлень). |
|-v | Докладна інформація про хід роботи (виводити додаткові |
| | Повідомлення). | p>
ПРИКЛАДИ: replace Apple Orange somefile p>
замінить всі входження Apple на Orange у файлі somefile. cat INFILE | replace Apple Orange Blimp Train> OUTFILE p>
Всі входження Apple у файлі INFILE будуть замінені на Orange ірезультат виведений в файл OUTFILE. У той же час, всі входження Blimp вфото INFILE будуть замінені на Train і теж виведені в файл OUTFILE. Такимчином, можна замінювати більш ніж один вислів за один прохід. p>
Можна використовувати спеціальні символи у вхідних рядках:
| ^ | Відповідає початку рядка. |
| $ | Відповідає кінця рядка. |
| b | Відповідає пропуску. Може з'являтися або окремо, або на початку, |
| | Або в кінці лексеми. Якщо b використовується в кінці лексеми, |
| | Наступні заміни почнуться після пробілу. b відповідає тільки |
| | Пропуску. | p>
Replace проста і дуже корисна утиліта з великими потенційнимиможливостями використання в MySQL. p>
which1 p>
Знайти команду. p>
СИНТАКСИС: which1 [cmd] p>
ОПИС: p> < p> Ця команда, ймовірно, корисна лише на системах, які не мають,команди which, вбудованої в оболонку, або доступною як команда. Виводитьтільки перший знайдену команду. p>
zap p>
Послати сигнал процесу, який відповідає зразку. p>
СИНТАКСИС: zap [-signal] [-? Ift] pattern p>
ОПИС: p>
За замовчуванням zap запросить підтвердження для кожного відповідногопроцесу. p>
Програма zap підтримує опції:
|-I or -? | Довідка. |
|-f | Зв'язатися сигнал без запиту підтвердження. |
|-t | Вивести список процесів, що відповідають зразку, але не |
| | Сигнал їм не посилати. | p>
В якості сигналу допускається будь-який сигнал системи unix. За замовчуваннямсигнал = 9 (завершити процес). p>
3. Настройка mysqld (серверна частина пакета MySQL) p>
При вказівці опції-O, окремо (без додаткових параметрів) можнаотримати список всіх змінних і їх поточних значень. Це може виглядатиприблизно так: p>
$ mysqld-O p>
Можливі змінні в опції-O: p>
| Назва | Значення за замовчуванням |
| back_log | Визначте розмір черги для вхідних tcp/ip |
| | Підключень .. Деякі ОС можуть мати |
| | Максимальне значення цієї змінної 128 або |
| | 256. |
| keybuffer | Розмір кеш-буфера, для зберігання всіх недавно |
| | Використаних ключів. Великий буфер дає найбільшу |
| | Кращу ефективність. З перемикачем-Sl |
| | Розподілений тільки один буфер. |
| max_allowed_packet | Буфер підключень сервера може бути змінений до |
| | Цього значення, якщо користувач дає довгу |
| | Команду. Початковий буфер = 'net_buffer_length'. |
| | На кожне підключення виділяється один буфер. |
| net_buffer_length | Початковий розмір буфера підключень. На кожне |
| | Підключення виділяється один буфер. |
| max_connections | Максимальна кількість підключень, які mysqld |
| | Може мати відкритими в один і той же час. |
| table_cache | Максимальне число таблиць зберігаються відкритими |
| | На сервері. Таблиці зберігаються відкритими, для |
| | Прискорення запиту до часто використовуваних таблиць. |
| | Однак, кожна відкрита таблиця вимагає багато |
| | Пам'яті. |
| recordbuffer | Розмір кеш-буфера для зберігання прочитаних |
| | Записів. На кожне підключення виділяється одна |
| | Буфер. |
| sortbuffer | Розмір буфера, що використовується при сортуванні. На |
| | Кожне підключення виділяється один буфер. |
| max_sort_length | Максимальний час для сортування? | p>
Корисні зауваження p>
. Всі потоки спільно використовують ту ж саму основну пам'ять. P>
. MySQL в даний час не використовує memmap. Це може змінюватися. P>
. Можна визначати розмір буфера для ключів при старті mysqld. Буфер ключів буде кешувати всі ключі у всіх таблицях В ПОРЯДКУ p>
НАДХОДЖЕННЯ запитів (змінна keybuffer) p>
. Кожне підключення використовує деяку частину потоку, стек і буфер підключень (змінна net_buffer_length). P>
. Кожен запит, хто чинить послідовний перегляд записів у таблиці, розподіляє буфер читань (змінна recordbuffer). P>
. Кожен запит, що виконує сортування, розподіляє sortbuffer і один або два тимчасових файлу. Максимально необхідне дисковий простір p>
= (sort_key_length + sizeof (long)) * 2. P>
. Усі об'єднання виконуються за один прохід, і результат зберігається в тимчасовій таблиці в пам'яті. Виконання повного об'єднання і сортування на двох великих таблицях може зажадати дуже великого обсягу пам'яті. P>
. Індексні файли відкриваються один раз. Файли даних відкриваються один раз для кожного паралельного потоку. Кожен паралельний потік має повну таблицю struct і поле struct плюс пам'ять для трьох повних рядків стовпців. BLOB вимагає ще 5-8 байт. P>
. Якщо таблиця має BLOB, буфер буде розподілений, щоб читати дані p>
BLOB. Цей буфер буде рости в міру необхідності, до розмірів найбільшого BLOB в таблиці. P>
. Коли?? Абліцов використовується, вона зберігається в кеші. Цей кеш буде завантажено та спорожнений В ПОРЯДКУ НАДХОДЖЕННЯ запитів (FIFO). За замовчуванням mysqld буде кешувати 64 таблиці. Якщо багато потоків звертаються до однієї і тієї ж таблиці одночасно, буде матися один запис на потік. ТОБТО, якщо два потоки одночасно звертаються до тієї ж самої таблиці, буде два записи в кеші. P>
. Команда mysqladmin reload закриває всі таблиці, які не використовуються, і зазначає всі використовувані таблиці, які будуть закриті, коли працюють потоки завершаться. Це дозволяє ефективно використовувати пам'ять, вчасно її звільняючи. P>
4. Можливості мови Perl для роботи з MySQL сервером. P>
При написанні програми до даної роботи вибрана мова Perl, тому щосьогодні MySQL більш широке поширення отримав на Web-серверах. А Perlяк не можна краще за інших мов підходить для написання CGI-додатків.
Взаємодія сценарію на мові Perl з MySQL можна зобразити схемою: p>
Сценарій Perl-> DBI -> DBD:: MySQL-> Сервер MySQL. P>
DBI забезпечує єдиний інтерфейс взаємодії з різнимисистемами управління базами даних. А DBD пов'язує цей інтерфейсбезпосередньо з конкретною СУБД. У нашому випадку це mysql. Для того,щоб програма на Perl могла спілкуватися і працювати з базою даних,необхідно підключити модуль DBI і драйвер DBD. Це виконується наступнимиоператорами: use DBI; use DBD:: mysql; p>
Для того, щоб виконувати SQL запити до бази даних, потрібно встановитилогічне з'єднання з MySQL. Це виконується за допомогою методу об'єкта
DBI. При цьому він повертає об'єкт (дескриптор) з'єднання, який будевикористовуватися для безпосереднього спілкування з базою даних. p>
$ dbh = DBI-> connect ( 'DBI: mysql: dbname = GRYADKA; host = 127.0.0.1;port = 3306','','', 0); p>
Викликаючи метод connect, йому передаються деякі параметри. Першийпараметр визначає властивості з'єднання. p>
Цей рядок має наступну структуру: p>
"dbi:: dbname =; host =;port = " p>
Далі в методі connect визначаються ім'я користувача, пароль і прапориз'єднання. p>
Існує два способи роботи з базами даних MySQL. Перший - такзваний механізм курсорів, а другий, відповідно, без використаннятаких. p>
Курсори - це об'єкти Perl, які забезпечують послідовнийдоступ до результатів запитів. p>
Кожен курсор відповідає за закріплений за ним запит. p>
$ cur = $ dbh-> prepare ( 'select * from MAIN ;'); p>
$ cur - це курсор, який для початку слід виконати, використовуючиметод execute: p>
$ cur-> execute; p>
Тепер, після виконання запиту, щоб отримати результат запиту,використовується метод fetchrow_array. Він по черзі повертає масив поліврезультативною віртуальної таблиці. p>
Дуже часто буває необхідно підготувати запит і після, при йоговиконання, передавати йому різні дані. Це досить просто вирішуєтьсяза допомогою механізму placeholders: p>
$ cur = $ dbh-> prepare ( 'insert into MAIN values (?,?)'); де знаки питання слід замінити на значення змінних,переданих в якості параметрів методу execute: p>
$ a00 = 2; $ a01 = 'second record'; $ cur-> execute ($ a00, $ a01); p>
Для того щоб закрити курсор, необхідно виконати метод finish. p>
$ cur-> finish; p>
Курсори дуже зручний момент в технології DBI. Однак можна обійти