Підготовка до роботи з PHP
Розглянемо етапи встановлення та налаштування MySQL у середовищі Linux (Unix).
Установка MySQL на Linux
Для встановлення MySQL на Linux рекомендується використовувати пакети RPM. В даний час RPM для MySQL створюються на операційній системі SuSE Linux 7.3, але вони повинні працювати також і для інших версій Linux, які підтримують rpm та використовують glibc.
У разі виникнення проблем із файлом RPM (наприклад, якщо ви отримали помилку ``Sorry, the host 'xxxx' could not be looked up''), зверніться до розділу Примітки до бінарних дистрибутивів Linux документації на MySQL.
Доступні для використання такі RPM-файли:
- MySQL-server-VERSION.i386.rpm . Сервер MySQL. Якщо потрібно лише підключатися до сервера MySQL, запущеного на іншому комп'ютері, цей файл не потрібен. Зверніть увагу, що вихід 4.0.10 цей пакет називався MySQL-VERSION.i386.RPM .
- MySQL-client-VERSION.i386.rpm . Стандартні клієнтські програми MySQL. Встановлення цього пакета потрібно завжди.
- MySQL-bench-VERSION.i386.rpm . Тести та контрольні завдання. Для файлу потрібна наявність модулів Perl та msql-mysql-modules.
- MySQL-devel-VERSION.i386.rpm . Бібліотеки та файли, що включаються, необхідні для компілювання інших клієнтів MySQL, таких як модулі Perl.
- MySQL-shared-VERSION.i386.rpm Цей пакет містить динамічні бібліотеки ( libmysqlclient.so* ), потрібні для деяких мов програмування або програм для роботи з MySQL.
- MySQL-embedded-VERSION.i386.rpm Вбудована бібліотека сервера MySQL (MySQL 4.x і новіші).
- MySQL-VERSION.src.rpm Цей файл містить вихідний код для попередніх пакетів. Файл також можна використовувати для створення файлів RPM для інших архітектур (наприклад, Alpha абоSPARC).
Для виконання стандартної мінімальної установки запустіть команду:
Для встановлення лише клієнтського пакета виконайте команду:
RPM поміщає дані в '/var/lib/mysql' і створює відповідні входження в `/etc/init.d/' для автоматичного запуску сервера під час початкового завантаження (у разі, якщо у вас є попередня інсталяція, можна створити копію раніше встановленого файлу запуску MySQL, щоб зміни в ньому не були втрачені.)
Якщо ви хочете встановити MySQL RPM на старших версіях Linux, які не підтримують init-скрипти в '/etc/init.d' (безпосередньо або за допомогою символічного посилання), вам слід створити символічне посилання на старе розташування перед тим, як встановлювати RPM:
Проте, всі сучасні постачання Linux мають підтримувати цю схему каталогів, т.к. це вимога стандарту LSB (Linux Standard Base).
Після встановлення RPM, mysqld повинен запрацювати і ви можете одразу приступати до використання MySQL.
Якщо при встановленні виникнуть проблеми, то за більш детальною інформацією слід звернутися до глави документації на MySQL, в якій описується установка з динарного дистрибутива (Встановлення динарного дистрибутива MySQL).
Налаштування MySQL в Linux
Для встановлення пакету MySQL потрібно створити базу даних mysql. Можливо, вона вже створена, але щоб переконатися в цьому, введіть команду:
Якщо база даних існує, програма повідомить вам про це. Тепер потрібно встановити пароль для користувача root. За промовчанням користувач root не має пароля. Тому дуже важливо встановити пароль для root.
База даних mysql є системною базою даних і містить такі таблиці:
- таблицюdb ;
- таблицюhost ;
- таблицюuser.
Нині нас цікавить таблицяuser. Вона містить паролі всіх користувачів, які мають право працювати із сервером MySQL. На даному (початковому) етапі в базу даних внесено лише один користувач - root . Щоб змінити пароль, запустіть сервер командою:
Ця команда запустить сервер у режимі демона та звільнить консоль. Якщо всі пакети були встановлені правильно, ви побачите повідомлення:
Однак, може бути й інше повідомлення, що свідчить про успішний запуск. Потім введіть команду:
Ця команда запускає клієнт MySQL. При цьому використовується ім'я користувача root, навіть якщо ви працюєте під іншим обліковим записом. Останній параметр визначає базу даних – mysql.
Змініть пароль суперкористувача за допомогою команди:
Як ви помітили, це звичайний MySQL запит, який оновлює полеPassword таблиціuser для користувачаroot. Тепер потрібно, щоб MySQL прийняв зміни. Для цього виконайте запит SQL:
Для прийняття змін також можна використовувати програмуmysqladmin з параметромreload :
Параметр-p вам обов'язково потрібно використовувати, тому що ви щойно встановили пароль для користувачаroot. Вийти з клієнта ви можете, ввівши командуquit.
Встановіть права доступу /mysql
Шлях_к_mysql у вас, ймовірно, буде таким:/etc/rc.d/init.d/mysql.
Тепер можете перезапустити сервер командою:
Якщо ви забудете пароль, ви його не відновите. Єдиний вихід із такого можливого несприятливого становища - створення бази данихmysql заново командоюmysql_install_db, попередньо видаливши стару базу.
Тепер ви не можете зареєструватися на сервері без пароля. Якщо вивведете командуmysql -u root mysql, то отримаєте таке повідомлення:
Для реєстрації на сервері потрібно використовувати командуmysql -u root -p. Параметр-p запросить пароль під час реєстрації.
Останнє, що потрібно зробити - це додати сервер MySQL в автозапуск. З цією метою перейдіть до директорії/etc/rc.d/rc3.d/ і створіть символічне посилання на файл/шлях_к_mysql/mysql
ПрефіксS14 визначає черговість запуску сервераmysql. У цьому випадку він запуститься після сервісів network (S10) та portmap (S11). Ці значення можуть бути іншими.
У своїй роботі демонmysqld використовує файл журналу/var/log/mysql.log. Саме в нього заносяться всі транзакції, а також всі команди, які ввів користувач. Після встановлення сервера потрібно внести користувачів, які мають право працювати із сервером баз даних. Введіть наступний запит:
Введений вами запит створює користувачаadmin, який матиме право виконувати будь-які операції з усіма базами даних. Цей користувач матиме право підключатися до сервера з комп'ютераlocalhost, використовуючи пароль 'password '.
Маска*.* визначає, до яких баз даних та таблиць має право підключатися той чи інший користувач. Перша зірочка визначає базу, а друга – таблицю. Якщо потрібно, щоб користувач admin мав право підключатися з будь-якого хоста, використовуйте знак відсотка замість імені хоста, в цьому випадку запит буде виглядати так:
Замість усіх повноважень можна визначити, які дії може виконувати з базою той чи інший користувач. Якщо ви є хостинг-провайдером і надаєте доступ користувачеві до його бази даних, ви можете використовувати наступний запит:
Перед виконанням цього запиту необхідно створити базу данихuser (якщо вона створена). Цей запит дозволяє користувачевіuser виконувати всі операції з його базою даних.
Наведемо повний перелік відповідних повноважень:
Якщо запитGRANT у вас не працює, ви можете внести користувача безпосередньо в таблицюuser бази данихmysql. Структура таблиці user виглядає так:
ПоляHost,User,Password - це, відповідно, вузол, з якого користувач може отримати доступ, ім'я користувача, пароль користувача. Всі інші поля надають повноваження для користувача. Якщо виконання будь-якої операції дозволено користувачеві, відповідне поле має бути раннім "Y ". Інакше встановіть "N ".
Наприклад, нам потрібно створити користувачаadmin, який повинен мати всі повноваження. Це можна зробити за допомогою такого запиту SQL:
При введенні запиту звертайте увагу на регістр назв полів. Сервер MySQL розрізняє великі та малі літери! За допомогою вищенаведеного запиту було створено користувачadmin, який має право реєструватися на сервері лише з вузлаlocalhost. Якщо вам потрібно дозволити реєстрацію з будь-якого вузла мережі, використовуйте знак відсотка, проте це не зовсім коректно щодо безпеки. Користувачadmin має всі можливі привілеї. Пароль користувача -topsecret.
Для створення звичайного користувача використовуйте наступний запит:
Для отримання великої кількості інформації щодо встановлення, конфігурування MySQL, особливостей роботи з MySQL зверніться до відповідного розділу документації MySQL.