Алексей Гапеев — digital-эксперт
Алексей Гапеев
Создаю цифровые системы,
которые усиливают доверие,
приводят клиентов и развивают бизнес
info@ipd.by
+375 29 6988370
Брест, ул. Луцкая, 82
Обо мне
Портфолио
Контакты
Меню
Главная
Обо мне
Портфолио
Кейсы
Услуги
Контакты
Оставить заявку
Поиск
Telegram
Viber
  • Главная
  • Новости
  • Образование и наставничество
  • Как устроен мой локальный сервер XAMPP и что делать при ошибках в связях MySQL
Образование и наставничество

Как устроен мой локальный сервер XAMPP и что делать при ошибках в связях MySQL

Что делать, когда сервер начинает "ругаться" на связи в базе данных? Показываю на практике, как выстроена архитектура моей локальной среды на базе XAMPP и как я восстановил целостность таблиц с помощью SQL. Это полезно каждому, кто управляет своими проектами через phpMyAdmin или поддерживает цифровую инфраструктуру бизнеса.

❓ Зачем вообще нужен локальный сервер — и как он у меня работает

Для управления сайтами, тестирования функционала и хранения данных я использую локальный сервер XAMPP версии 3.2.4. Это — мой мини-хостинг на компьютере, который позволяет разрабатывать, тестировать и обслуживать digital-системы без подключения к "живому" серверу.

Он включает Apache, MySQL (или точнее — MariaDB), PHP и удобный phpMyAdmin. Всё это работает на базе Windows, что удобно, если нужно вникать в глубину прямо из среды разработки.

📂 Моя база данных: ipdby_medtechnika

Это систематизированная база, в которой хранятся товары, категории, атрибуты и их значения. В центре — таблица product_attributes, которая связывает товары и их характеристики. И именно на ней начались "приключения"…

⚠️ Когда база данных начала «падать»

Запускаю phpMyAdmin по адресу http://localhost/phpmyadmin — и получаю ошибку:

Warning in .\libraries\classes\Dbi\DbiMysqli.php#213
mysqli_query(): (HY000/126): Index for table '.\mysql\user.MYI' is corrupt; try to repair it

Что это значит? Это не просто сбой — это повреждение индексов системной таблицы пользователей. И если их не починить, MySQL может перестать вообще пускать вас внутрь.

🔧 Восстановление через консоль

  1. Остановил MySQL в XAMPP.
  2. Сделал бэкап \xampp\mysql\data\mysql.
  3. Через PowerShell:
    cd \xampp\mysql\bin
    .\mysql -u root
  4. И выполнил восстановление:
    REPAIR TABLE mysql.user;

Сработало. Таблица восстановилась, и доступ к phpMyAdmin снова открылся.

🔗 Настройка связей между таблицами: сила внешних ключей

В любой продуманной БД важно одно — целостность данных. Для этого в SQL есть мощный инструмент — внешние ключи (FOREIGN KEY).

🧩 Как связаны мои таблицы

  • catalog_products — товары
  • catalog_attributes — характеристики (длина, материал и т.д.)
  • catalog_attribute_values — возможные значения этих характеристик
  • product_attributes — таблица-связка, где указывается, какой товар имеет какой атрибут и какое значение

Чтобы между ними были реальные связи (и не возникало мусора в данных), нужно правильно выстроить внешний ключ.

🧪 SQL-запрос на установку связей

ALTER TABLE `product_attributes`
  ADD CONSTRAINT `product_attributes_ibfk_1`
    FOREIGN KEY (`product_id`) REFERENCES `catalog_products` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `product_attributes_ibfk_2`
    FOREIGN KEY (`attribute_id`) REFERENCES `catalog_attributes` (`id`) ON DELETE CASCADE,
  ADD CONSTRAINT `product_attributes_ibfk_3`
    FOREIGN KEY (`value_id`) REFERENCES `catalog_attribute_values` (`id`) ON DELETE CASCADE;

Но тут меня ждал сюрприз: ошибка Cannot add or update a child row. Что это значит? В таблице product_attributes уже были значения, которых не существовало в родительских таблицах.

🧹 Как почистить «висячие» связи

Поочерёдно выполнил:

SELECT product_id FROM product_attributes
WHERE product_id NOT IN (SELECT id FROM catalog_products);

DELETE FROM product_attributes
WHERE product_id NOT IN (SELECT id FROM catalog_products);

И так же — для attribute_id и value_id. Только после этого SQL-запрос на добавление связей прошёл успешно. Всё — таблицы связаны!

📌 Выводы и рекомендации

Создание своей цифровой инфраструктуры — это как строительство дома. Сначала фундамент (таблицы), потом стены (связи), потом электрика (запросы), а потом — весь уют и автоматизация. Но если что-то сбоит — не паникуйте, а шаг за шагом идите к восстановлению.

Рекомендую каждому, кто работает с локальным сервером:

  • Делайте бэкапы перед изменениями
  • Проверяйте данные перед установкой внешних ключей
  • Используйте `ON DELETE CASCADE` — это упростит поддержку
  • Храните SQL-запросы в отдельных `.sql`-файлах — как я это делаю

📥 Если нужна помощь

Если у вас похожие задачи — со структурой, архитектурой базы данных, разработкой на XAMPP или автоматизацией под бизнес — пишите. Беру на себя решение digital-задач, чтобы вы уверенно росли в своём деле.

31 июля 2025 Просмотров: 431
Теги:
  • Программирование (42)
  • Разработка сайтов (56)
Посмотреть все новости в категории:
Образование и наставничество
Спросить у ИИ
AI
AI-ассистент
онлайн
сегодня
Здравствуйте! Я AI-помощник Алексея Гапеева. Чем могу помочь?
онлайн
🔒
Вы задали 8 вопросов
Чтобы продолжить общение, напишите Алексею напрямую:
Telegram WhatsApp
Или подписывайтесь на новости:
Telegram-канал Instagram
Алексей Гапеев — digital-эксперт
Алексей Гапеев
Создаю цифровые системы,
которые усиливают доверие,
приводят клиентов и развивают бизнес
+375 29 698-83-70
БРЕСТ, ул. Луцкая, 82

Обо мне

  • Подход и работа
  • Образование и база
  • Развитие и обучение
  • IT и системы
  • Портфолио
  • Ключевые направления
  • Отрасли

Услуги

  • Корпоративная цифровая архитектура
  • Итеративно-инкрементальная поставка (IID)
  • Базовый запуск
  • Экосистема роста и масштабирования
  • Стратегическое партнёрство
  • Первый шаг — вход в систему

Кейсы

  • Платформа годовых заявок: охват до 20% населения
  • 65 организаций здравоохранения в одной системе
  • AR-калькулятор для производства

Знания

  • Новости
  • СМИ обо мне
  • Видео и подкасты
  • Библиотека
  • Блог
  • Исследования
  • Решения

Экспертиза и доверие

  • ООО «Студия ИПД»
  • Профиль эксперта
  • Отзывы
  • Политика конфиденциальности

Калькуляторы

  • Калькулятор цифровой архитектуры
  • Калькулятор итеративной поставки

Обсудить проект

  • +375 29 698-83-70
Оставить заявку

Контакты

  • Обратная связь
  • Соцсети
Telegram
GitHub
Vk
Instagram
LinkedIn
Facebook
YouTube
Локация
Брест, ул. Луцкая, 82
Email
info@ipd.by
Позвонить
+375 29 698-83-70

Обо мне

Портфолио

Кейсы

Услуги

Отрасли

Контакты

Оставить заявку
Instagram
Telegram
GitHub
LinkedIn
Facebook
YouTube
© 2026, Алексей Гапеев. ООО «Студия ИПД». УНП 291457456
Вход  ·  4.42.0 · История версий
Платформа ИПД · цифровые системы и автоматизация для бизнеса и учреждений

Перезвоните мне

Закрыть

В какое время вам удобно?

Алексей Гапеев
Алексей Гапеев
ООО «Студия ИПД» — цифровые системы для бизнеса
Главная
Обо мне
Подход и работа Образование и база Развитие и обучение IT и системы Медиа и контент Ключевые направления Отзывы ООО «Студия ИПД»
Услуги
Корпоративная цифровая архитектура Итеративно-инкрементальная поставка (IID) Базовый запуск Экосистема роста и масштабирования Стратегическое партнёрство Первый шаг — вход в систему
Кейсы
Платформа годовых заявок: охват до 20% населения 65 организаций здравоохранения в одной системе AR-калькулятор для производства Все кейсы
Портфолио
Знания
Новости СМИ обо мне Видео и подкасты Библиотека Блог Исследования Решения
Контакты
Адрес Брест, ул. Луцкая, 82
Email info@ipd.by
Телефон +375 29 698-83-70
Telegram Viber Instagram
4.42.0 и история изменений

Загрузка...

Стоп! Не уходите! ?????
Закрыть

Получите чек-лист:
оценка проекта за 5 минут:

Для начинающих и последователей оценки и вы не упустите важное
Чек-лист оценки проекта

Узнайте время, бюджет и ошибки в оценке проекта правильно!