Як створити базу даних MySQL/MariaDB і безпечно змінити її ім’я

База даних потрібна практично будь-якому сайту на CMS: у ній зберігаються матеріали, налаштування, користувачі, зв’язки між об’єктами та службові дані. Створити нову базу MySQL або MariaDB нескладно, але старі інструкції часто радять входити в phpMyAdmin під root без пароля, вибирати utf8_general_ci і «перейменовувати» БД однією кнопкою. Для сучасного сайту такий підхід уже не варто вважати нормою.

Нижче розберемо три актуальні способи створення бази даних — через панель хостингу, phpMyAdmin і SQL, — а потім безпечну схему зміни імені БД без ризику втратити сайт. Інструкція підходить для Joomla, WordPress та інших PHP-застосунків, що працюють із MySQL/MariaDB.

Що потрібно підготувати перед створенням бази даних

Спочатку важливо зрозуміти, де саме працює сайт. На віртуальному хостингу бази зазвичай створюються через ISPmanager, cPanel, Plesk або власну панель провайдера. phpMyAdmin у такій конфігурації призначений насамперед для роботи з уже доступними базами й таблицями. На VPS або локальному сервері можливостей більше, але й відповідальність за права доступу лежить на адміністраторі.

Перед початком роботи корисно записати чотири параметри, які знадобляться застосунку для підключення:

  • ім’я бази даних — наприклад, site_db;
  • ім’я користувача БД — окремий обліковий запис для сайту;
  • пароль користувача — довгий унікальний пароль;
  • хост бази даних — найчастіше localhost, але хостинг може вказати інше значення.

На shared-хостингу провайдер нерідко автоматично додає до імені бази й користувача префікс акаунта. Це нормально: у конфігурацію CMS потрібно записувати саме повне ім’я, яке показує панель.

Три способи створити базу даних

Спосіб 1. Панель хостингу.

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

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

  1. Відкрийте розділ керування базами даних.
  2. Створіть нову базу й задайте зрозуміле ім’я латиницею.
  3. Створіть окремого користувача БД і згенеруйте складний пароль.
  4. Призначте цьому користувачу права саме на створену базу.
  5. Збережіть ім’я бази, користувача, пароль і адресу сервера в менеджері паролів або іншому захищеному місці.

Для CMS немає потреби використовувати адміністративний акаунт сервера. Сайт має підключатися під власним обліковим записом, який має права на його базу, а не на всі бази сервера.

Спосіб 2. phpMyAdmin.

Якщо ваш обліковий запис має право CREATE DATABASE, створити базу можна й через phpMyAdmin. У головному вікні відкрийте вкладку «Бази даних» або аналогічний розділ і скористайтеся формою створення нової БД. На деяких хостингах ця можливість прихована — тоді базу потрібно створювати лише через панель провайдера.

Особливу увагу приділіть кодуванню. Стара порада вибирати utf8_general_ci більше не є універсальною. Сучасні MySQL і MariaDB повноцінно працюють із utf8mb4, який підтримує весь діапазон Unicode. Якщо сервер і CMS уже налаштовані правильно, розумніше використовувати рекомендовану хостингом або застосунком utf8mb4-collation, а не змінювати її навмання.

Після створення порожньої бази в неї можна імпортувати дамп наявного сайту або дозволити інсталятору CMS створити таблиці автоматично.

Спосіб 3. SQL.

На власному сервері або в консолі адміністратора ту саму операцію можна виконати SQL-командою. Конкретну collation краще підбирати під установлену версію СУБД і вимоги застосунку, тому в універсальному прикладі достатньо явно вказати utf8mb4:

CREATE DATABASE site_db
  CHARACTER SET utf8mb4;

Саме створення бази ще не дає сайту права підключатися до неї. Наступним кроком створюють окремого користувача й призначають йому права на site_db.*. Цей процес докладно розібрано в матеріалі «Як створити користувача MySQL/MariaDB і надати права на базу даних».

Чи можна просто перейменувати базу даних

Саме тут старі інструкції найчастіше вводять в оману. У MySQL немає універсальної команди RENAME DATABASE. У деяких версіях і конфігураціях phpMyAdmin інтерфейс міг пропонувати дію, схожу на перейменування, але фактично вона зводилася до створення нової бази, копіювання об’єктів і видалення старої. На shared-хостингу така функція нерідко взагалі недоступна.

Тому безпечне «перейменування» слід сприймати як міграцію на нову базу. Правильна послідовність виглядає так:

  1. Зробіть свіжий дамп вихідної бази й переконайтеся, що файл резервної копії відкривається.
  2. Створіть нову базу з потрібним ім’ям.
  3. Створіть або призначте користувача та права на нову БД.
  4. Імпортуйте дамп у нову базу.
  5. Змініть реквізити підключення в конфігурації сайту.
  6. Перевірте головну сторінку, кілька матеріалів, вхід в адмінку, форми та інші функції, що записують дані в БД.
  7. Стару базу видаляйте лише після перевірки й додаткової резервної копії.

Така схема трохи довша за «одну кнопку», зате дозволяє швидко відкотитися: поки вихідна база існує, достатньо повернути попередні реквізити підключення.

Що змінити в configuration.php Joomla

Якщо база змінюється в Joomla, редагувати потрібно саме параметри підключення. Важливий момент: $db — це ім’я бази, а $user — ім’я користувача.

public $host = 'localhost';
public $user = 'site_user';
public $password = 'ваш_пароль';
public $db = 'site_db';
public $dbprefix = 'abcde_';

Префікс таблиць $dbprefix під час звичайного перенесення бази змінювати не потрібно: він має збігатися з реальними іменами імпортованих таблиць. Перед ручним редагуванням configuration.php збережіть копію файла й не залишайте резервний файл із паролем у публічно доступній папці сайту.

Типові помилки після створення або перенесення бази

Більшість проблем виникає не через саму БД, а через неправильні реквізити або неповний імпорт. Перед пошуком складної причини варто перевірити базові речі:

  • у конфігурації вказано повне ім’я бази, а не лише частину без префікса хостинг-акаунта;
  • користувача справді призначено новій базі;
  • пароль у конфігурації збігається з поточним паролем користувача;
  • правильно вказано localhost або зовнішній hostname сервера БД;
  • у новій базі присутні всі таблиці сайту;
  • префікс таблиць у Joomla збігається з фактичним;
  • імпорт не завершився помилкою через ліміт розміру, часу виконання або несумісну версію.

Якщо сайт повідомляє Access denied, спочатку перевіряйте користувача, пароль, host і права. Якщо з’єднання встановлюється, але CMS не бачить таблиці, перевіряйте ім’я бази та префікс.

Підсумок

Для більшості власників сайтів найкращий шлях — створювати MySQL/MariaDB через панель хостингу, використовувати окремого користувача й utf8mb4, а phpMyAdmin застосовувати для імпорту, експорту та роботи з таблицями. «Перейменування» бази безпечніше виконувати через створення нової БД, перенесення даних і подальше перемикання конфігурації.

Якщо спочатку хочеться розібратися в термінології, почніть зі статті «Що таке база даних: як вона влаштована і навіщо потрібна сайту», а особливості MySQL і MariaDB розглянуто окремо в матеріалі «MySQL і MariaDB для сайту».

Add comment

Знайшли помилку або неточність?

Выделите фрагмент текста и нажмите Ctrl + Enter. Также можно воспользоваться кнопкой ниже.

Знайшли помилку або неточність?

Виділений фрагмент буде додано до повідомлення автоматично. За потреби додайте пояснення.

Форма захищена від автоматичних надсилань

Дані використовуються лише для перевірки та виправлення матеріалу.