Я работаю над сайтом Wordpress с другим человеком. На данный момент файлы Wordpress находятся в общей папке Dropbox, что позволяет нам обоим видеть все файлы, с которыми нам нужно работать. Тем не менее, базы данных Wordpress отсутствуют, я создал их на своем ПК, но другой человек их не видит.

Есть ли стандартный, простой способ заставить Wordpress хранить файлы своей базы данных в том же каталоге, где хранятся все остальные файлы?

4 ответа4

2

Я не собираюсь предлагать вам, что не стоит обращаться с базами данных как с файлами, когда вам нужно работать над этим. Предполагая, что вы знаете, что делаете, просто найдите ключ datadir (раздел [mysqld] ) в my.cnf или my.ini (используйте mysqld --help --verbose чтобы получить информацию о местоположении) и измените его значение на каталог Wordpress. Перезапустите сервер MySQL. Готово! Вам не нужно трогать конфигурацию Wordpress вообще.

2

Вы не хотите хранить живые файлы базы данных в Wordpress, так как их восстановление доставит всевозможные неприятности и обеспечит ложный уровень безопасности. (По ряду причин, в том числе из-за того, что MySQL несовместим с ACID, возможное снижение производительности и потому, что базы данных не закрываются при создании этой резервной копии, а восстановление труднее, даже если вы можете получить данные)

Было бы лучше - с точки зрения надежности, стабильности и возможности восстановления выполнить резервное копирование базы данных с помощью cronjob, чтобы регулярно делать дампы базы данных в папку Dropbox. Вот для чего существуют такие программы, как MYSQLDUMP (и они являются частью пакета MySQL, а не дополнением для вторичного рынка). Вы можете запланировать эти дампы, используя CRONTAB.

Для совместного доступа к базе данных правильное поведение - настроить базу данных на порт, к которому оба разработчика могут одновременно подключаться. Весь смысл баз данных состоит в том, чтобы абстрагировать хранилище от кода, чтобы несколько человек могли работать над данными [более или менее] одновременно.

1

Возможно, вы захотите посмотреть на альтернативные решения.

Во-первых, Dropbox - это хороший способ обмена файлами, но в лучшем случае он будет доступен для одного человека в нескольких местах. Я даже не знаю, с чего начать конфликты, с которыми вы столкнетесь, пытаясь использовать Dropbox в качестве системы управления исходным кодом. Посмотрите в мерзавца или SVN. SVN довольно удобен для пользователя с черепахой на окнах, и есть места, которые предлагают бесплатные репозитории.

Что касается mysql, доверяйте людям здесь, когда они говорят, что вы не хотите этого делать. Вы уничтожите свои данные и быстро переведете их в неработоспособное состояние. Поскольку вы используете Dropbox, возврат обратно в рабочее состояние будет чрезвычайно трудным или невозможным, в зависимости от того, насколько хорошо вы сделали резервные копии и рассчитали их время.

Вы собираетесь разместить сайт где-нибудь, нет? Разве они не предоставляют базы данных mysql для вас? Если это так, вы должны проверить и посмотреть, можете ли вы предоставить порты для удаленного управления им или просто управлять им через интерфейс hosts phpmySQL. Если ваша структура не изменится, вам, вероятно, в любом случае не нужно углубляться в базу данных. Вы говорите, что у вас есть БД на вашем компьютере, но ваш друг не может получить к ней доступ, может, вы можете открыть ему порт?

Наконец, даже если вы действительно синхронизировали файлы, не удаляя ваши данные, ему все равно придется настроить экземпляр MySQL на своей стороне, чтобы что-то делать с файлами данных. MySQL состоит из двух частей: программного обеспечения и данных. Вы не можете просто сбросить данные в Dropbox (или любой другой метод обмена) и сделать их доступными для тех, кто имеет доступ к файлам данных. Если я ошибаюсь и у него настроен сервер mysql, почему он не может просто установить свой собственный набор таблиц?

1

Как я сказал в комментариях, вы действительно не хотите этого делать, и я сомневаюсь, что это сработает так хорошо. Вам действительно стоит задуматься о размещении доступного в Интернете сервера MySQL на выделенном сервере /VPS или на компьютере разработчика или вашего сотрудника. И если вы делаете это, вы должны быть уверены, что, по крайней мере, только один из вас загружает базу данных одновременно; Я не знаю, насколько хорошо Dropbox справится с синхронизацией нескольких одновременных обновлений базы данных, но моя интуиция говорит мне, что это закончится катастрофой.

Тем не менее, вот как вы можете сказать MySQL хранить файлы базы данных в произвольном каталоге, в данном случае это ваш общий каталог Dropbox.

Вам нужно найти конфигурационный файл MySQL. На большинстве платформ это называется my.cnf , в Windows - my.ini . Чтобы найти этот файл, посмотрите ответы здесь.

Найдя файл конфигурации, откройте его и найдите строку, начинающуюся с datadir . Это где ваши базы данных сейчас. Перейдите в этот каталог и скопируйте его содержимое в новую папку на вашем Dropbox. Теперь измените директиву datadir путь к вашему Dropbox, и перезапустите MySQL.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .