НОУ ІНТУІТ, Лекція, Загальне адміністрування MySQL

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

У цій та наступних лекціях описується кілька програм, винятково корисних для виконання завдань адміністрування MySQL.

  • Утиліта mysqladmin дозволяє виконувати всілякі адміністративні функції.
  • Сценарії safemysqld та mysqlserver застосовуються для запуску MySQL-сервера mysqld.
  • Програма mysqldump використовується для резервування та копіювання баз даних.
  • Утиліти myisamchk та isamchk застосовуються для перевірки цілісності даних таблиць та операцій налагодження.

Захист нової інсталяції MySQL

На етапі інсталяції MySQL необхідно обов'язково встановити пароль для MySQL - користувача root , оскільки відразу після встановлення права сервера не захищені. Передбачається, що каталог даних та база даних mysql із таблицею дозволів вже ініціалізовані. На комп'ютерах з UNIX для нихініціалізації достатньо запустити сценарій mysql_install_db. На комп'ютерах, що працюють під керуванням Windows, каталог даних та база даних mysql ініціалізуються за допомогою програми Setup в дистрибутиві сервера. Отже, каталог та основна база даних проініціалізовані, і сервер запущено.

Відразу після першої інсталяції MySQL на комп'ютері привілеї таблиці дозволів бази даних mysql встановлюються в такий спосіб.

  • Авторизуватися як основний користувач root з локального комп'ютера можна без пароля. Користувач root має всі можливі права (включаючи адміністративні), може виконувати будь-які операції. (До речі, збіг імен суперкористувачів MySQL і UNIX не є закономірністю. Вони ніяк не впливають один на одного.)
  • Права анонімного доступу надаються всім користувачам, що підключаються з локального комп'ютера до бази даних test або будь-якої іншої бази даних, ім'я якої починається зі слова test . Анонімні користувачі можуть виконувати будь-які операції з такими таблицями, але не мають привілеїв адміністратора. Для підключення до сервера з локального комп'ютера можна визначити як ім'я головного комп'ютера localhost , і його реальне ім'я. Наприклад, якщо сервер розміщується на комп'ютері pitviper.snake.net, клієнт цього комп'ютера може підключитися без пароля до сервера для роботи з базою даних test за допомогою однієї з двох наступних команд:

На повну відсутність захисту вихідної інсталяції вказує той факт, що підключитися до сервера MySQL можна як користувач root без пароля. Саме тому одне з перших завдань адміністратора MySQL полягає у встановленні пароля для користувача root. Потім, залежно від методу встановлення пароля, можливо, ще доведетьсявказати серверу перезавантажити таблиці дозволів, щоб завантажити у пам'ять всі зроблені зміни. (У процесі запуску сервер завантажує таблиці в пам'ять і може не помітити внесені зміни. У такому випадку слід явно вказати йому на необхідність повторного зчитування таблиць.)

У версіях MySQL 3.22 і вище встановити пароль можна за допомогою команди mysqladmin. Для цього достатньо ввести наступну команду, замінивши її частину "my password" на реальний пароль:

mysqladmin -u root password "my password"

У решті версій MySQL для цих цілей можна скористатися програмою mysql і безпосередньо оновити таблицю дозволів grant в базі даних mysql :

Команда mysql і оператор update застосовується у старих версіях MySQL, а також у всіх версіях, що безкоштовно розповсюджуються під Windows.

Після встановлення пароля необхідно визначитися, чи потрібно задавати серверу перезавантаження таблиці дозволів. Для цього запустіть наступну команду:

Якщо сервер все ще дозволяє підключатися як root без пароля, вкажіть йому перезавантажити таблиці, ввівши таку команду:

Після визначення пароля користувача root (і перезавантаження таблиць дозволів) саме час розпочинати визначення нового пароля для адміністратора.

Налаштування процедур запуску та завершення роботи сервера MySQL

Один з основних обов'язків адміністратора MySQL – забезпечити узгоджену та тривалу роботу сервера, що дасть можливість користувачам отримувати доступ до нього у будь-який зручний час. Іноді, однак, виникає потреба й у тимчасовому зупиненні роботи сервера. (Так, наприклад, при переміщенні бази даних необхідно переконатися, що сервер у цей час не оновлює її таблиці.) Ці лекції недопоможуть вирішити компроміс між необхідністю постійної роботи сервера та бажанням іноді тимчасово призупинити його роботу, оскільки найчастіше вирішення цього компромісу залежить від конкретної ситуації. Принаймні читачі зможуть дізнатися, як запустити та завершити роботу сервера.

Всі наведені в цій лекції інструкції можна застосовувати лише до операційних систем UNIX.