MySQL базы данных в cPanel: различия между версиями

Материал из wiki.p3.ru
Новая страница: «= MySQL базы данных в cPanel = MySQL - это система управления реляционными базами данных (СУБД), используемая большинством популярных CMS (WordPress, Joomla, Drupal) и веб-приложений. == Доступ к MySQL Databases == # Войдите в cPanel # В разделе '''DATABASES''' выберите '''MySQL Databases''' # Откроется стр...»
 
Нет описания правки
 
Строка 236: Строка 236:
UPDATE wp_options  
UPDATE wp_options  
SET option_value = REPLACE(option_value, 'old-domain.com', 'new-domain.com');
SET option_value = REPLACE(option_value, 'old-domain.com', 'new-domain.com');
</syntaxhighlight>
== Удаленный доступ к MySQL ==
По умолчанию MySQL доступен только с localhost. Для удаленного доступа:
# Перейдите в '''Remote MySQL'''
# В разделе '''Add Access Host'''
# Введите IP адрес или домен:
#* Конкретный IP: <code>123.456.789.0</code>
#* Диапазон: <code>123.456.%</code>
#* Любой хост: <code>%</code> ('''небезопасно!''')
# Нажмите '''Add Host'''
{{Предупреждение|Открытие доступа с % представляет серьезную угрозу безопасности!}}
=== Подключение к удаленной БД ===
Используйте данные:
* '''Host:''' ваш-домен.com или IP сервера
* '''Port:''' 3306 (стандартный)
* '''Username:''' username_dbuser
* '''Password:''' пароль пользователя
* '''Database:''' username_dbname
Пример PHP подключения:
<syntaxhighlight lang="php">
<?php
$servername = "yourdomain.com";
$username = "username_dbuser";
$password = "password";
$dbname = "username_dbname";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
</syntaxhighlight>
</syntaxhighlight>



Текущая версия от 15:18, 27 января 2026

MySQL базы данных в cPanel

MySQL - это система управления реляционными базами данных (СУБД), используемая большинством популярных CMS (WordPress, Joomla, Drupal) и веб-приложений.

Доступ к MySQL Databases

  1. Войдите в cPanel
  2. В разделе DATABASES выберите MySQL Databases
  3. Откроется страница управления базами данных

Создание базы данных

Метод 1: Через MySQL Databases

  1. Перейдите в раздел Create New Database
  2. Введите имя базы данных (будет добавлен префикс вашего аккаунта)
    • Пример: если введете mysite, база будет названа username_mysite
  3. Нажмите Create Database
  4. Появится сообщение об успешном создании
  5. Нажмите Go Back для возврата

Шаблон:Совет

Метод 2: Через MySQL Database Wizard (пошаговый мастер)

  1. Перейдите в MySQL Database Wizard
  2. Шаг 1: Создание базы данных
    • Введите имя БД
    • Нажмите Next Step
  3. Шаг 2: Создание пользователя
    • Введите имя пользователя
    • Введите пароль (или используйте Password Generator)
    • Нажмите Create User
  4. Шаг 3: Назначение привилегий
    • Выберите ALL PRIVILEGES для полного доступа
    • Или выберите конкретные права
    • Нажмите Next Step
  5. Шаг 4: Завершение
    • Запишите данные подключения
    • База данных готова к использованию

Создание пользователя БД

Пользователи БД необходимы для подключения к базам данных.

  1. В разделе MySQL UsersAdd New User
  2. Введите Username (будет добавлен префикс)
  3. Введите Password или используйте генератор
  4. Сила пароля должна быть минимум "Good" (лучше "Strong")
  5. Нажмите Create User

Password Generator

Для создания надежного пароля:

  1. Нажмите Password Generator
  2. Настройте параметры:
    • Длина: минимум 12 символов (рекомендуется 16-20)
    • Включить специальные символы
    • Включить цифры
    • Включить заглавные буквы
  3. Нажмите Generate Password
  4. Скопируйте пароль (нажмите Use Password)

Шаблон:Важно

Назначение пользователя к базе данных

Пользователь должен быть привязан к БД для получения доступа.

  1. В разделе Add User To Database
  2. Выберите User из выпадающего списка
  3. Выберите Database из списка
  4. Нажмите Add
  5. Выберите привилегии:

Типы привилегий

Привилегия Описание Когда использовать
ALL PRIVILEGES Полный доступ ко всем операциям Для приложений (WordPress, Joomla и т.д.)
SELECT Чтение данных Для пользователей только на чтение
INSERT Добавление новых записей Для форм сбора данных
UPDATE Изменение существующих записей Для приложений с редактированием
DELETE Удаление записей Для административных функций
CREATE Создание новых таблиц Для установщиков CMS
DROP Удаление таблиц Для административных функций
INDEX Создание/удаление индексов Для оптимизации БД
ALTER Изменение структуры таблиц Для обновлений структуры БД

Шаблон:Предупреждение

  1. Нажмите Make Changes

Управление существующими базами данных

Просмотр баз данных

В разделе Current Databases отображаются:

  • Имя базы данных
  • Размер базы данных
  • Назначенные пользователи
  • Действия (переименовать, удалить)

Проверка размера БД

  1. Просмотрите столбец Size в списке текущих баз
  2. Или используйте phpMyAdmin для детального анализа
  3. Мониторьте использование в контексте квоты аккаунта

Удаление базы данных

Шаблон:Предупреждение

  1. Найдите БД в списке Current Databases
  2. Нажмите Delete напротив нужной базы
  3. Подтвердите удаление

Переименование базы данных

  1. Нажмите Rename напротив базы данных
  2. Введите новое имя
  3. Нажмите Proceed

Шаблон:Важно

Управление пользователями БД

Просмотр пользователей

В разделе Current Users показаны все пользователи MySQL.

Изменение пароля пользователя

  1. Найдите пользователя в разделе Current Users
  2. Нажмите Change Password
  3. Введите новый пароль или используйте генератор
  4. Нажмите Change Password

Шаблон:Важно

Удаление пользователя

  1. Нажмите Delete напротив пользователя
  2. Подтвердите удаление

Удаление привилегий пользователя

  1. В разделе Current Databases найдите БД
  2. Рядом с именем пользователя нажмите X (удалить привилегии)
  3. Подтвердите действие

Работа с phpMyAdmin

phpMyAdmin - веб-интерфейс для управления MySQL базами данных.

Доступ к phpMyAdmin

  1. В разделе DATABASES нажмите phpMyAdmin
  2. Откроется новая вкладка с интерфейсом
  3. Слева отображается список баз данных

Основные операции в phpMyAdmin

Просмотр таблиц

  1. Выберите базу данных в левой панели
  2. Отобразится список таблиц
  3. Нажмите на таблицу для просмотра данных

Выполнение SQL запросов

  1. Выберите базу данных
  2. Перейдите на вкладку SQL
  3. Введите SQL запрос, например:
SELECT * FROM wp_users WHERE user_login = 'admin';
  1. Нажмите Go

Экспорт базы данных

  1. Выберите базу данных
  2. Перейдите на вкладку Export
  3. Выберите метод:
    • Quick - быстрый экспорт с настройками по умолчанию
    • Custom - настраиваемый экспорт
  4. Формат: обычно SQL
  5. Нажмите Go
  6. Файл .sql будет загружен на ваш компьютер

Импорт базы данных

  1. Выберите базу данных
  2. Перейдите на вкладку Import
  3. Нажмите Choose File
  4. Выберите .sql файл
  5. Нажмите Go
  6. Дождитесь завершения импорта

Шаблон:Совет

Оптимизация таблиц

  1. Выберите базу данных
  2. Отметьте таблицы для оптимизации (или Check All)
  3. В выпадающем меню With selected выберите Optimize table
  4. Нажмите Go

Исправление таблиц

Если таблица повреждена:

  1. Выберите таблицу
  2. В меню With selected выберите Repair table
  3. Нажмите Go

Поиск и замена

  1. Выберите таблицу
  2. Вкладка Search
  3. Введите критерии поиска
  4. Или используйте SQL:
UPDATE wp_options 
SET option_value = REPLACE(option_value, 'old-domain.com', 'new-domain.com');

Резервное копирование баз данных

Метод 1: Через Backup в cPanel

  1. Перейдите в Backup
  2. В разделе Download a MySQL Database Backup
  3. Нажмите на имя базы данных
  4. Файл .sql.gz загрузится на компьютер

Метод 2: Через phpMyAdmin

См. раздел Экспорт базы данных

Метод 3: Через командную строку (SSH)

mysqldump -u username_dbuser -p username_dbname > backup.sql

Автоматическое резервное копирование

Настройте через Cron Jobs:

  1. Перейдите в Cron Jobs
  2. Добавьте задание:
0 2 * * * mysqldump -u username_dbuser -p'password' username_dbname | gzip > /home/username/backups/db_$(date +\%Y\%m\%d).sql.gz

Восстановление баз данных

Через Backup

  1. Перейдите в Backup
  2. Раздел Restore a MySQL Database
  3. Нажмите Choose File
  4. Выберите файл .sql или .sql.gz
  5. Нажмите Upload

Через phpMyAdmin

См. раздел Импорт базы данных

Мониторинг и оптимизация

Проверка производительности

  1. В phpMyAdmin выберите БД
  2. Вкладка Status показывает:
    • Размер таблиц
    • Количество записей
    • Overhead (неиспользуемое пространство)

Оптимизация запросов

Используйте EXPLAIN для анализа:

EXPLAIN SELECT * FROM wp_posts WHERE post_status = 'publish';

Добавление индексов

Для ускорения поиска:

CREATE INDEX idx_post_status ON wp_posts(post_status);

Очистка неиспользуемых данных

Для WordPress:

-- Удалить ревизии постов
DELETE FROM wp_posts WHERE post_type = 'revision';

-- Очистить корзину
DELETE FROM wp_posts WHERE post_status = 'trash';

-- Удалить спам комментарии
DELETE FROM wp_comments WHERE comment_approved = 'spam';

-- Оптимизировать таблицы после очистки
OPTIMIZE TABLE wp_posts, wp_comments;

Шаблон:Предупреждение

Решение типичных проблем

Ошибка подключения к БД

Error establishing a database connection

Причины и решения:

  1. Неверные данные подключения
    • Проверьте имя БД, пользователя, пароль в конфиге
    • Убедитесь, что пользователь добавлен к БД
  2. MySQL сервер не запущен
    • Обратитесь в техподдержку хостинга
  3. Превышено количество подключений
    • Оптимизируйте код
    • Проверьте на бесконечные циклы
  4. Таблицы повреждены
    • Используйте Repair в phpMyAdmin

Too many connections

Превышен лимит одновременных подключений:

Решения:

  • Используйте persistent connections
  • Оптимизируйте запросы
  • Включите кэширование
  • Обратитесь к хостеру для увеличения лимита

Таблица не существует (Table doesn't exist)

Причины:

  • Таблица действительно отсутствует
  • Ошибка в имени таблицы (регистр важен!)
  • База данных не выбрана

Решение:

-- Проверить существующие таблицы
SHOW TABLES;

-- Проверить структуру БД
SHOW CREATE TABLE table_name;

База данных слишком большая

Признаки:

  • Медленная работа
  • Превышение квоты
  • Ошибки при резервном копировании

Решения:

  1. Очистите неиспользуемые данные
  2. Оптимизируйте таблицы
  3. Архивируйте старые данные
  4. Используйте внешнее хранилище для файлов
  5. Обновите план хостинга

Не могу импортировать большую БД

Ограничения:

  • PHP memory_limit
  • PHP max_execution_time
  • MySQL max_allowed_packet
  • Размер загружаемого файла

Решения:

  1. Увеличьте лимиты в MultiPHP INI Editor
  2. Разбейте dump на части
  3. Используйте BigDump скрипт
  4. Импортируйте через SSH:
mysql -u username_dbuser -p username_dbname < backup.sql

Безопасность баз данных

Лучшие практики

  1. Сложные пароли
    • Минимум 16 символов
    • Буквы, цифры, спецсимволы
  2. Минимальные привилегии
    • Давайте только необходимые права
    • Не используйте root аккаунт
  3. Регулярные бэкапы
    • Минимум раз в день для критичных данных
    • Храните копии вне сервера
  4. Обновления
    • Регулярно обновляйте CMS и плагины
    • Применяйте патчи безопасности
  5. Мониторинг
    • Проверяйте логи на подозрительную активность
    • Используйте системы обнаружения вторжений

Защита от SQL инъекций

В PHP коде используйте:

Подготовленные запросы (mysqli):

$stmt = $conn->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();

PDO:

$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->execute(['username' => $username]);

Никогда:

// ❌ ОПАСНО - уязвимо к SQL инъекциям!
$query = "SELECT * FROM users WHERE username = '$username'";

Лимиты и квоты

Типичные ограничения хостинга:

Параметр Типичное значение Описание
Количество БД 10-100 Зависит от плана
Размер БД 1-10 GB На одну базу
Одновременные подключения 10-50 Параллельные соединения
max_allowed_packet 16-64 MB Максимальный размер пакета
Размер таблицы Не ограничен Ограничен размером БД

Проверяйте лимиты в правой панели cPanel.

См. также

Полезные SQL запросы

Основные операции

-- Создать таблицу
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Вставить данные
INSERT INTO users (username, email) VALUES ('john', 'john@example.com');

-- Обновить данные
UPDATE users SET email = 'newemail@example.com' WHERE username = 'john';

-- Удалить данные
DELETE FROM users WHERE id = 5;

-- Выбрать данные
SELECT * FROM users WHERE created_at > '2024-01-01';

-- Подсчитать записи
SELECT COUNT(*) FROM users;

-- Сортировка
SELECT * FROM users ORDER BY created_at DESC LIMIT 10;

Внешние ссылки

---

Последнее обновление: 30 январь 2026