MYSQL server

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Зміст

Введення ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4

  1. Загальний опис, запуск та налагодження

прав доступу до баз даних MySQL ... ... ... ... ... ... ... ... .... ... ... .. ... .. 5

  1. Команди пакета MySQL ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... ... .. 10

    1. Основні команди ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 11

    2. Додаткові команди ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... ... ... .23

  2. Налаштування mysqld (серверна частина пакета MySQL) ... ... ... ... ... ... ... ... .27

  3. Можливість мови Perl для роботи з MySQL сервером ... ... ... ... ... ... .. 29

Висновок ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. ... ... ... ... ... ... .. ... ... ... .31

Список літератури ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... ... ... ... ... ... ... ... .. 33



Введення.


На сьогоднішній день СУБД MySQL є однією з найбільш відомих, надійних і швидких зі всього сімейства існуючих СУБД. Чому саме вона? Однією з причин є правила її поширення - за неї не треба платити гроші і розповсюджується вона разом зі своїми вихідними текстами, інша причина - це те, що MySQL відносно швидка СУБД. PostgreSql, наприклад, також розповсюджується під ліцензією * GNU GPL, але вона не отримала такого широкого поширення. Одна з причин - це помітна повільність. Отже, дві головні причини популярності MySQL: ціна і продуктивність.

MySQL написаний під десятки видів операційних систем. Це і FreeBSD, OpenBSD, MacOS, OS / 2, SunOS, Win9x/00/NT і Linux. Сьогодні MySQL особливо поширена на платформах Linux та Windows. Причому на останній зустрічається набагато рідше.

Принцип роботи СУБД MySQL аналогічний принципу роботи будь-якої СУБД, що використовує SQL (Structured Query Language, мова структурованих запитів) в якості командного мови для створення / видалення баз даних, таблиць, для поповнення таблиць даними, для здійснення вибірки даних.

Метою даної роботи є опис конфігурування, адміністрування та програмування СУБД MySQL та створення програми ілюструє можливості MySQL.


  1. Загальний опис, запуск і налаштування прав доступу до

баз даних MуSQL.

MySQL, як і будь-яка інша СУБД являє собою програму-сервер, яка знаходиться в пам'яті комп'ютера і обслуговує TCP порт. У випадку з MySQL, номером порту буде число 3306. А клієнтська програма, будь то CGI-додаток на Perl або програмний продукт на C, з'єднується з СУБД з цього порту і посилає йому рядки на SQL. Той у свою чергу їх інтерпретує, виконуючи необхідні дії, і відсилає результати запиту назад клієнтові. Таким способом відбувається спілкування сервера баз даних з клієнтськими програмами.

Для запуску MуSQL-сервера необхідно виконати файл mysqld.exe. Сервер запускається як безвіконні фоновий процес. При цьому він залишається в пам'яті і обробляє запити від клієнтських додатків.

Для зупинки сервера слід виконати команду:

mysqladmin-u root shutdown.

Якщо сервер не був зупинений коректно, то при наступному запуску у файлі mysql.err буде додано запис про аварійне завершення. Коректна зупинка сервера необхідна для збереження всіх даних, які знаходяться в кешах MySQL.

MуSQL має розвинену систему доступу до баз даних. Користувачеві бази даних може бути надано доступ до всієї бази даних, окремим таблиць і окремим стовпцях таблиць. Є розмежування на дії, які може виробляти користувач із записами. Для організації такої складної (на перший погляд) структури доступу використовується декілька таблиць у спеціальній базі даних. На підставі значень цих таблиць вибудовується політика надання доступу.

База даних, яку сервер MуSQL використовує для зберігання внутрішньої інформації про користувачів, за замовчуванням має ім'я mуsql. У цій базі даних визначені таблиці для зберігання інформації користувача облікових записів. Зміст БД mysql в таблиці 1.1.

Таблиця 1.1. Список таблиць прав доступу

Порядок перевірки Назва таблиці Опис
1 user Список всіх користувачів сервера MySQL з правами доступу до всієї бази даних в цілому
2 db Список баз даних з зіставленими їм користувачами та їх привілеями на виконання операції
3 host Список комп'ютерів, з яких можливий доступ до зіставленої комп'ютера базі даних, і привілеї на виконання операцій, які можуть проводитися через з'єднання з цього комп'ютера
4 tables_priv Список таблиць баз даних, до яких можливий доступ користувача
5 columns_priv Список стовпців бази даних, до яких можливий доступ користувача

Перевірка прав доступу проводиться в порядку, зазначеному в таблиці 1.1. Перш за все перевіряється, чи існує користувач і які можливості він має при управлінні базою даних (табліца1.2.).

Таблиця 1.2. Поля таблиці user

Назва поля

Тип

Значення за замовчуванням

Опис

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 Привілеї, що дозволяють оновлювати дані

Поля з типом Enum ('N', 'Y') вважаються дозволеними, якщо встановлено значення Y, і недозволеними, якщо встановлено значення N.

Для адміністратора сервера MуSQL необхідні всі привілеї, для звичайних користувачів у таблиці зазвичай не допускаються жодні з привілею, тобто Звичайні користувачі не можуть змінювати конфігурацію сервера MySQL. Винятком можна вважати привілеї File_priv, якщо користувач активно працює з файловою системою.

Поле host може бути описано як IP-адреса або ім'я, а також може бути порожнім. В імені комп'ютера і в імені користувача дозволяється застосування регулярних виразів.

Паролі зберігаються в зашифрованому вигляді і не мають функції зворотного дешифрування. Для того щоб задати пароль, необхідно використовувати функцію password ().

Якщо привілеї на перегляд процесів сервера не дозволені, тоді користувач може бачити лише власні процеси.

На етапі перевірки значень таблиці user пропускаються для подальшої обробки тільки ті сполуки, у яких поля Host, User та значення функції password () від значення пароля, отриманого від клієнта, збігаються.

Подальша обробка наводиться в таблиці db. На цьому етапі визначаються привілеї, якими володіє користувач для роботи з конкретною базою даних (табліца. 1.3).

Таблиця 1.3. Привілеї для роботи з базою даних

Назва поля

Тип

Значення за замовчуванням

Опис

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 Привілеї, що дозволяють оновлювати дані

Привілеї, вказані в таблиці db, перекривають значення, отримані в таблиці user, саме тому користувачі можуть не мати жодної привілеї в таблиці user.

Один користувач може мати кілька різних адрес, з яких може проводитися підключення, тому на даному етапі перевіряється значення Host. Якщо значення полі Host порожньо, тоді проводиться додаткова перевірка в таблиці host. Таблиця Host ідентична таблиці Db, за винятком того, що в ній відсутнє поле User. Стовпці таблиці host аналогічні стовпцях таблиці db, різниця полягає лише в тому, що дані з таблиці host при збігу полів Host і Db мають більш високий пріоритет, і перекривають раніше встановлені значення.

MySQL сервер дозволяє встановлювати обмеження на доступ до окремих таблиць і стовпців таблиці (ця інформація зберігається в таблицях tables_priv і columns_priv), але збільшення числа перевірок призводить до зменшення продуктивності.


2. Команди пакета MySQL.

СУБД MySQL поставляється з наступними основними програмами і скриптами:

  • mysql

  • mysqlaccess

  • mysqladmin

  • mysqld

  • mysqldump

  • mysqlshow

  • isamchk

  • isamlog

  • safe_mysqld

Ще є кілька утиліт. Вони не життєво важливі для MySQL, але забезпечують корисні додаткові функціональні можливості.

  • comp_err

  • msql2mysql

  • mysqlbug

  • perror

  • replace

  • which1

  • zap


2.1. Основні команди

mysql

Клієнтська програма MySQL.

Запуск:

mysql [OPTIONS] database

ОПИС:

Клієнтська частина СУБД MySQL названа MySQL. Вона забезпечує інтерфейс командного рядка з СУБД MySQL, і можливість неінтерактивної пакетної обробки.

Програмою 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

Вивести інформацію про версію пакету.

mysqlaccess

Перевірка прав доступу користувача.

СИНТАКСИС:

mysqlaccess [host] [user] [db] OPTIONS

ОПИС:

Скрипт mysqlaccess використовується, щоб внести до списку привілеї користувача для конкретної бази даних. Це дає інформацію, яка може бути корисна при діагностуванні проблем з доступом користувачів до даної базі даних.

Скрипт 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)

Необхідно вказати принаймні ім'я користувача та ім'я бази даних, які потрібно перевірити. Якщо ім'я сервера не задано, то мається на увазі ім'я 'localhost'.


mysqladmin

Виконує адміністративні функції.

СИНТАКСИС:

mysqladmin [OPTIONS] command command ...

ОПИС:

Програма 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

Вивести інформацію про версію.


Крім цього програма mysqladmin підтримує наступні команди:

create [ім'я бази даних]

Створити базу даних.

drop [ім'я бази даних]

Видалити базу даних (разом з усіма таблицями).

processlist

Вивести відомості про працюючих потоках MySQL.

reload

Перечитати настройки і очистити всі кеші.

shutdown

Завершити роботи з СКБД MySQL. Всі запущені MySQL-сесії позначаються як 'killed'. Це означає, що всі потоки, які простоюють в даний час, будуть закриті негайно, а керування потоками буде закрито, коли вони досягнуть точок завершення, визначених сервером. Клієнти отримають повідомлення про помилку 'mysql server has gone away'.

status

Вивести коротке повідомлення про статус сервера.

mysqld

Серверна частина пакета MySQL (mysqld).

СИНТАКСИС:

mysqld [OPTIONS]

ОПИС:

Програма mysqld є ядром СУБД MySQL. Вона запускається як демон в системі і приймає підключення з клієнтських програм, виконуючи запити і повертаючи результати. Вона багатопотокова, тобто обробить більше ніж один запит одночасно.

Може спостерігатися спад продуктивності при використанні опції - log-isam, оскільки при цьому дуже багато пишеться в файл протоколу. Неперіодичні зміни, оновлення та видалення можуть зменшити продуктивність на 5-10%. Продуктивність може сильно знизитися на оновлення, що вимагають великої кількості одночасних змін.

Опція - log-isam може використовуватися, для копіювання бази даних. ISAM журнали можуть стати ДУЖЕ великими.

Кожна операція UPDATE, DELETE і INSERT має заголовок в 13 байтів додатково до команди.

Кожна відкрита таблиця вимагає дев'ять байтів плюс довжина імені файлу таблиці. Це необхідно лише для таблиць, які ще не в кеші таблиць.

Крім того будуть наявні одинадцять байтів додатково для будь-яких команд, які кешують / блокують таблиці. Ці події зазвичай викликані внутрішніми командами mysql. Найбільш часто, коли використовується SELECT.

У більшості випадків потрібно виконувати mysqld з скрипта safe_mysqld.

Програма 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

Вивести інформацію про версію.

Якщо опція-h не визначена, mysql буде вважати, що основною каталог = "/ my / data / sql / mysql".

Всі бази даних розміщені в каталозі [homedir] / [ім'я бази даних].

Опція-l повинна використовуватися обережно. Коли використовується сервер, з великим обсягом транзакцій, цей файл може стати великим дуже швидко. Якщо не зазначається ім'я logfile, при використанні опції-l mysqld буде писати протокол в файл [homedir] / [hostname]. Log.

Опція-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

mysqldump

Дамп змісту бази даних.

СИНТАКСИС:

mysqldump [OPTIONS] [database [table [field]]]

ОПИС:

Програма mysqldump використовується для створення дампа змісту бази даних MySQL. Вона пише інструкції SQL у стандартний вивід. Ці інструкції SQL можуть бути змінені на файл. Можна резервувати базу даних MySQL, використовуючи mysqldump, але при цьому Необхідно переконатися, що в цей момент з базою даних не виконується ніяких інших дій.

Програма 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

Інформація про версію.

Можна направити висновок mysqldump в клієнтську програму MySQL, щоб копіювати базу даних. Необхідно переконатися, що база даних не змінюється в цей час, інакше вийде суперечлива копію!

mysqlshow

Показати інформацію про сервер, бази даних або таблиці.

СИНТАКСИС:

mysqlshow [OPTIONS] [database [table [field]]]

ОПИС:

Програма mysqlshow може використовуватися, щоб показати, з якими базами даних MySQL працює, які таблиці дана база даних містить, і які поля є в таблиці в цій базі даних.

Програма 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

Інформація про версію.


Mysqlshow без аргументів покаже всі бази даних. Mysqlshow з ім'ям бази даних покаже всі таблиці в ній. Mysqlshow з ім'ям бази даних і ім'ям таблиці покаже схему цієї таблиці.

Якщо останній параметр містить '?' або '*', то вони використовуються як символи узагальнення.

isamchk

Перевірка, відновлення, керування і збір статистики за таблицями MySQL.

СИНТАКСИС:

isamchk [-? adeiqrsvwzIV] [-k #] [-O xxxx = size] [-Si] [-Sr #]

[-O keybuffer = #] [-O readbuffer = #] [-O writebuffer = #]

[-O sortbuffer = #] [-O sort_key_blocks = #] files

ОПИС:

Програма isamchk використовується для перевірки несуперечності таблиць та усунення будь-яких проблем, які це може викликати. Isamchk може також використовуватися, щоб посилити таблиці в базах даних, які містять BLOB або поля символів змінної довжини. Це необхідно тільки, якщо часто додаються і видаляються записи з цих таблиць.

Необхідно зупинити СУБД MySQL перед запуском isamchk з єдиним перемикачем-r.

Взагалі, потрібно використовувати перемикач-rq для ремонту таблиці, тому що він виконує "оперативний" ремонт. Для такого ремонту не потрібно тимчасового місця в пам'яті, таким чином він проходить швидко, так як isamchk не копіює файл даних.

Перед початком роботи, треба перейти в каталог з таблицею, яка потребує перевірки та / або ремонту. У загальному випадку, це $ DATADIR / DBNAME.

Опції програми 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]


Можна використовувати другу опцію '-q', щоб використовувати старий файл даних. -Ro використовує старий метод відновлення: повільніше, але надійніше-r. -R може виправити майже всі помилки, крім унікальних ключів, які виявилися все ж таки не унікальними. Якщо-f заданий при перевірці таблиці, то таблиці з помилками будуть автоматично виправлені.

ПРИКЛАДИ:

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].

isamlog

Отримання статистики, і використання isam-журналів.

СИНТАКСИС:

isamlog [-? iruvIV] [-c #] [-f #] [-p #] [-F filepath /] [-o #]

[-R file recordpos] [-w write_file] [log-filename]

ОПИС:

Ця програма використовується разом з опцією - log-isam = file_name демона mysqld.

Файл file_name буде зберігати протокол всіх змін для всіх таблиць. Програма isamlog може бути використана для отримання інформації про цей файл і оновити всі таблиці і бази даних.

Щоб відновити базу даних, потрібна копія, яка містить вашу базу даних до того, як 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]. Ця опція може використовуватися, щоб отримати двійковий файл всіх вставок і модифікацій конкретної таблиці для використання в налагодженні.

safe_mysqld

Скрипт для запуску демона mysqld.

СИНТАКСИС:

safe_mysqld [options to mysqld]

ОПИС:

Цей скрипт зазвичай виконується при початковому завантаженні, щоб запустити mysqld. Якщо необхідно, щоб DATADIR був поміщений в ієрархії каталогу MySQL, що і mysqld, потрібно підправити DATADIR в цьому скрипті.


2.2. Додаткові команди

comp_err

Генерує файли повідомлень про помилки на національній мові.

СИНТАКСИС:

comp_err [-?] [-I] [-V] fromfile [s] tofile

ОПИС:

Ця програма використовується для компіляції текстових файлів які містять відповідність між кодами помилок mysql і текстовими повідомленнями про ці помилки у формат, який розуміє mysql. Це потрібно для зміни існуючого файлу повідомлень або створення такого файлу для іншої мови.

ПРИКЛАД:

comp_err share / english / errmsg.txt share / english / errmsg.sys


msql2mysql

Виконує початкове перетворення mSQL скрипта в MySQL.

СИНТАКСИС:

msql2mysql [filename]

ОПИС:

Скрипт msql2mysql використовується як перший крок при портуванні msql скриптів в MySQL.

Програма msql2mysql - фактично досить простий скрипт, який використовує команду replace, яка поставляється з СУБД MySQL, щоб замінити mSQL звернення до функції на їх MySQL еквіваленти. Змінюються лише імена, додаткові параметри не додаються.


mysqlbug

Генерує звіт про помилки.

СИНТАКСИС:

mysqlbug [address]

ОПИС:

Цей скрипт використовується при повідомленні про помилки в MySQL. Він генерує форму, яку для заповнення поміщає в будь-який текстовий редактор, вказаний у змінній $ VISUAL (Vi за замовчуванням). Форма буде містити автоматично згенерувала інформацію про вашу систему, включаючи версії OS і MySQL і архітектуру. При закінченні, форма буде надіслана поштою до списку розсилки MySQL.

perror

Виводить коротке текстове пояснення числового коду помилки.

СИНТАКСИС:

$ Perror [-? VIV] [errorcodes]

ОПИС:

Програма perror надає короткі текстові пояснення числових кодів помилок, що повертаються системою або СУБД MySQL.

Програма perror підтримує опції:

-? or-I Довідка.
-V Докладна інформація.
-V Інформація про версію.

replace

СИНТАКСИС:

replace [-? svIV] from to from to ... - [Files]

ОПИС:

Програма program використовується скриптом msql2mysql. Replace може бути використана для заміни рядка на місці у файлі або отримувати рядок через канал (пайп), проводити заміну і виводити результат в STDOUT.

Можливі наступні опції:

-?

Довідка.

-S

Працювати мовчки (ніяких статусних повідомлень).

-V

Детальна інформація про хід роботи (виводити додаткові повідомлення).

ПРИКЛАДИ:

replace Apple Orange somefile

Замінить всі входження Apple на Orange у файлі somefile.

cat INFILE | replace Apple Orange Blimp Train> OUTFILE

Всі входження Apple у файлі INFILE будуть замінені на Orange і результат виведений в файл OUTFILE. У той же час, всі входження Blimp у файлі INFILE будуть замінені на Train і теж виведені в файл OUTFILE. Таким чином, можна замінювати більш ніж один вираз за один прохід.

Можна використовувати спеціальні символи у вхідних рядках:

\ \ ^ Відповідає початку рядка.
\ \ $ Відповідає кінцю рядка.
\ \ B Відповідає прогалині. Може з'являтися або окремо, або на початку, або наприкінці лексеми. Якщо \ \ b використовується в кінці лексеми, наступні заміни почнуться після пропуску. \ \ B відповідає тільки прогалині.

Replace проста і дуже корисна утиліта з великими потенційними можливостями використання в MySQL.


which1

Знайти команду.

СИНТАКСИС:

which1 [cmd]

ОПИС:

Ця команда, ймовірно, корисна лише на системах, які не мають, команди which, вбудованої в оболонку, або доступною як команда. Виводить тільки першу знайдену команду.


zap

Послати сигнал процесу, який відповідає зразку.

СИНТАКСИС:

zap [-signal] [-? Ift] pattern

ОПИС:

За замовчуванням zap запросить підтвердження для кожного відповідного процесу.

Програма zap підтримує опції:

-I or -? Довідка.
-F Надіслати сигнал без запиту дозволу.
-T Вивести список процесів, що відповідають зразку, але не сигнал їм не посилати.

Як сигнал допускається будь-який сигнал системи unix. За замовчуванням сигнал = 9 (завершити процес).


3. Налаштування mysqld (серверна частина пакета MySQL)

При вказівці опції-O, окремо (без додаткових параметрів) можна отримати список всіх змінних і їх поточних значень. Це може виглядати приблизно так:

$ Mysqld-O

Можливі змінні в опції-O:

Ім'я

Значення за замовчуванням

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

Максимальний час для сортування?

Корисні зауваження

  • Всі потоки спільно використовують ту ж саму основну пам'ять.

  • MySQL в даний час не використовує memmap. Це може змінюватися.

  • Можна визначати розмір буфера для ключів при старті mysqld. Буфер ключів буде кешувати всі ключі в усіх таблицях У ПОРЯДКУ НАДХОДЖЕННЯ запитів (змінна keybuffer)

  • Кожне підключення використовує деяку частину потоку, стік і буфер підключень (змінна net_buffer_length).

  • Кожен запит, що робить послідовний перегляд записів у таблиці, розподіляє буфер читань (змінна recordbuffer).

  • Кожен запит, виконує сортування, розподіляє sortbuffer і один або два тимчасових файлу. Максимально необхідне дисковий простір = (sort_key_length + sizeof (long)) * 2.

  • Усі об'єднання виконуються за один прохід, і результат зберігається в тимчасовій таблиці в пам'яті. Виконання повного об'єднання і сортування на двох великих таблицях може зажадати дуже великого обсягу пам'яті.

  • Індексні файли відкриваються один раз. Файли даних відкриваються один раз для кожного паралельного потоку. Кожен паралельний потік має повну таблицю struct і поле struct плюс пам'ять для трьох повних рядків стовпців. BLOB вимагає ще 5-8 байт.

  • Якщо таблиця має BLOB, буфер буде розподілений, щоб читати дані BLOB. Цей буфер буде рости в міру необхідності, до розмірів найбільшого BLOB в таблиці.

  • Коли таблиця використовується, вона зберігається в кеші. Цей кеш буде завантажений і спорожнений У ПОРЯДКУ НАДХОДЖЕННЯ запитів (FIFO). За замовчуванням mysqld буде кешувати 64 таблиці. Якщо багато потоків звертаються до однієї і тієї ж таблиці одночасно, буде матися один запис на потік. ТОБТО, якщо два потоки одночасно звертаються до тієї ж самої таблиці, буде два записи в кеші.

  • Команда mysqladmin reload закриває всі таблиці, які не використовуються, і відзначає всі використовувані таблиці, які будуть закриті, коли працюючі потоки завершаться. Це дозволяє ефективно використовувати пам'ять, вчасно її звільняючи.

4. Можливості мови Perl для роботи з MySQL

сервером.

При написанні програми до даної роботи вибрана мова Perl, тому що сьогодні MySQL більш широке поширення отримав на Web-серверах. А Perl як не можна краще інших мов підходить для написання CGI-додатків. Взаємодія сценарію на мові Perl з MySQL можна зобразити схемою:

Сценарій Perl-> DBI -> DBD:: MySQL-> Cервер MySQL.

DBI забезпечує єдиний інтерфейс взаємодії з різними системами управління базами даних. А DBD пов'язує цей інтерфейс безпосередньо з конкретною СУБД. У нашому випадку це mysql. Для того, щоб програма на Perl могла спілкуватися і працювати з базою даних, необхідно підключити модуль DBI і драйвер DBD. Це виконується наступними операторами:

use DBI; use DBD:: mysql;

Для того щоб виконувати SQL запити до бази даних, потрібно встановити логічне з'єднання з MySQL. Це виконується за допомогою методу об'єкта DBI. При цьому він повертає об'єкт (дескриптор) з'єднання, який буде використовуватися для безпосереднього спілкування з базою даних.

$ Dbh = DBI-> connect ('DBI: mysql: dbname = GRYADKA; host = 127.0.0.1; port = 3306','','', 0);

Викликаючи метод connect, йому передаються деякі параметри. Перший параметр визначає властивості з'єднання.

Цей рядок має наступну структуру:

"Dbi: <ім'я DBD>: dbname = <ім'я бази даних>; host = <ім'я хоста>; port = <номер порту>"

Далі в методі connect визначаються ім'я користувача, пароль і прапори з'єднання.

Існує два способи роботи з базами даних MySQL. Перший - так званий механізм курсорів, а другий, відповідно, без використання таких.

Курсори - це об'єкти Perl, які забезпечують послідовний доступ до результатів запитів.

Кожен курсор відповідає за закріплений за ним запит.

$ Cur = $ dbh-> divpare ('select * from MAIN;');

$ Cur - це курсор, який для початку слід виконати, використовуючи метод execute:

$ Cur-> execute;

Тепер, після виконання запиту, щоб отримати результат запиту, використовується метод fetchrow_array. Він по черзі повертає масив полів результативною віртуальної таблиці.

Дуже часто буває необхідно підготувати запит і після, при його виконанні, передавати йому різні дані. Це досить просто вирішується за допомогою механізму placeholders:

$ Cur = $ dbh-> divpare ('insert into MAIN values ​​(?,?)');

де питальні знаки слід замінити на значення змінних, переданих як параметрів методу execute:

$ A00 = 2; $ a01 = 'second record'; $ cur-> execute ($ a00, $ a01);

Для того щоб закрити курсор, необхідно виконати метод finish.

$ Cur-> finish;

Курсори дуже зручний момент в технології DBI. Проте можна обійтися і без них. Існує безліч методів, які цілком непогано замінюють курсори:

selectrow_array - повертає один рядок запиту у вигляді масиву;

selectall_arrayref - повертає весь відповідь сервера у вигляді масиву, посилання на масиви;

do - виконує запит, нічого не повертаючи (дуже зручно при роботі з insert, update і пр.)

Для того щоб розірвати з'єднання з MySQL, необхідно виконати метод disconnect.

$ Dbh-> disconnect;

Висновок.


У процесі написання даної роботи були з'ясовані такі властивості MySQL сервера:

  • Нить. Підтримка декількох одночасних запитів.

  • Оптимізація зв'язків з приєднанням багатьох даних за один прохід.

  • Записи фіксованої і змінної довжини.

  • Гнучка система привілеїв і паролів.

  • До 16 ключів в таблиці. Кожен ключ може мати до 15 полів.

  • Підтримка ключових полів і спеціальних полів в операторові CREATE.

  • Підтримка чисел довжиною від 1 до 4 байт (ints, float, double, fixed), рядків змінної довжини і позначок часу.

  • Інтерфейс з мовами C і perl.

  • Заснована на потоках, швидка система пам'яті.

  • Утиліта перевірки і ремонту таблиці (isamchk).

  • Всі операції роботи з рядками не звертають уваги на регістр символів в оброблюваних рядках.

  • Псевдоніми застосовні як до таблиць, так і до окремих колонках у таблиці.

  • Всі поля мають значення за замовчуванням. INSERT можна використовувати на будь-якому підмножині полів.

  • Легкість управління таблицею, включаючи додавання і видалення ключів і полів.

Отже, популярність MySQL сервера визначається не тільки тим, що пакет поширюється безкоштовно і має високу продуктивність, але ще й тим, що має безліч перерахованих вище достоїнств, багатьох з яких немає в інших СУБД.

І віртуальний магазин, і сервер знайомств, і всілякі сайти, що надають платні послуги, - всі потребують можливості обробляти і зберігати великі обсяги інформації. MySQL надає всім цю можливість абсолютно безкоштовно. Це дійсно одна з найпотужніших, швидких і надійних СУБД.

У ході виконання курсової роботи була написана програма, яка представляє собою інтернет-каталог. Вона ілюструє можливості MySQL сервера, можливості інтеграції MySQL c мережею Internet, що на сьогодні досить актуально. Створена програма може використовуватися в якості Інтернет-каталогу в Інтернет-магазині.


Список літератури

  1. М. Каба. MySQL і Perl - СПб.: Питер, 2001.

А. Паутов. Документація по MySQL.
  1. М. Грубер. Розуміння SQL.

  2. Матеріали інтернет-сайтів:

www.mysql.com

www.infocity.kiev.ua

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
80кб. | скачати


Схожі роботи:
Розробка систем управління базою даних MySQL
Windows NT 40 Server
SQL Server 2000
LAN Server 1940
MS SQL Server 1965
Операційна система Windows Server 2008
Операційна система Windows 2000 Server
Створення баз даних в InterBase SQL Server
СУБД SQL Server основні особливості та її застосування
© Усі права захищені
написати до нас