Вопрос или проблема
У меня есть локальное приложение, которое записывает данные в две таблицы локальной MySQL. Кроме того, у меня есть удаленный хостинг WordPress (у меня нет root-доступа на этом хосте), где база данных имеет соответствующие таблицы wp_.
Я подозреваю, что обычные хостинги WP не позволяют напрямую подключаться к MySQL удаленно.
Каков рабочий/обычный способ синхронизации локальных некорректных таблиц MySQL с таблицами на хостинговом WordPress?
Ответ или решение
Для выполнения CRUD (создание, чтение, обновление, удаление) операций с базой данных WordPress, которая размещена удаленно, без доступа к корню, и на которой нет прямого доступа к MySQL, можно использовать несколько подходов. Вот поэтапное руководство по синхронизации локальных таблиц MySQL с удаленными таблицами WordPress:
1. Использование REST API WordPress
WordPress предоставляет мощный REST API, который позволяет взаимодействовать с его базой данных, не имея прямого доступа к MySQL. Вы можете использовать его для выполнения CRUD операций.
Шаги:
-
Включите REST API: В большинстве случаев REST API уже включен в WordPress. Убедитесь, что ваши настройки позволяют его использование.
-
Аутентификация: Для выполнения операций записи (POST, PUT, DELETE) вам потребуется аутентификация. Вы можете использовать плагины, такие как:
- JWT Authentication for WP REST API: позволяет использовать токен JWT для аутентификации.
- Basic Authentication: также доступен для использования, но менее безопасен.
-
Создание и чтение записей:
- Для создания записей вы можете отправить POST-запрос на
https://ваш_сайт/wp-json/wp/v2/posts
(для создания постов, аналогично и для других типов записей). - Для получения данных используйте GET-запросы к соответствующим конечным точкам.
- Для создания записей вы можете отправить POST-запрос на
-
Обновление и удаление записей:
- Используйте PUT-запрос для обновления
https://ваш_сайт/wp-json/wp/v2/posts/{id}
. - Удаление выполняется с помощью DELETE-запроса на тот же URL.
- Используйте PUT-запрос для обновления
2. Использование плагина для синхронизации базы данных
Если для вашей задачи REST API не является оптимальным выбором, вы можете использовать плагины для синхронизации:
- WP Data Sync: Позволяет синхронизировать данные между локальными и удаленными базами данных.
- WP Migrate DB Pro: Платный плагин, который позволяет легко экспортировать и импортировать базы данных, но требуется немного больше конфигурации.
3. Экспорт и импорт данных через SQL-запросы
Если доступ к базе данных осуществляется через phpMyAdmin или аналогичный инструмент, вы можете экспортировать и импортировать данные:
- Экспортируйте данные из локальной базы через
mysqldump
или интерфейс phpMyAdmin и сохраните файл SQL. - Импортируйте данные через phpMyAdmin в удаленную базу данных.
Этот метод менее автоматизированный и подходит для периодической синхронизации.
4. Программный обмен данными
Если у вас есть возможность разработать решение, вы можете создать отдельный скрипт на PHP, который будет:
- Получать данные из локальной базы.
- Отправлять данные в удаленную базу через REST API или напрямую через SQL-запросы (если это разрешено хостингом).
Заключение
В зависимости от ваших технических навыков и архитектуры приложения, один из вышеперечисленных способов может подойти лучше всего. Рекомендуется использовать REST API WordPress, так как это наиболее безопасный и удобный способ взаимодействия с удаленной БД без необходимости доступа к серверу. Тем не менее, если REST API не подходит, можно рассмотреть альтернативные способы синхронизации, такие как плагины или ручной обмен данными.