2012-05-24 6 views
1

Я использую sugarsync для синхронизации локальных папок между Mac и ПК,
Я хочу также синхронизировать базу данных.
Могу ли я сделать это, просто синхронизируя папки (я использую xampp на ПК и WAMP на Mac), или это сложнее тогда? , и если возможно, какие файлы и папки я должен синхронизировать?Синхронизация базы данных mySQL между двумя компьютерами

ответ

5

Короче говоря, это не очень хорошая идея, и я не думаю, что это будет возможно. Файлы базы данных по существу заблокированы, так как сервер базы данных должен иметь эксклюзивный доступ к нему. Sugarsync не может знать, в каком состоянии находятся эти файлы, чтобы он мог копировать половину заполненных файлов из источника в пункт назначения. Это может даже повредить ваши базы данных полностью, поскольку sugarsync может блокировать доступ к файлу данных во время критической операции.

Если вам нужно сохранить синхронизированные копии баз данных, вот некоторые идеи для вас.

  1. Хорошо старомодный резервную копию и восстановление. Если вам не нужна копия вашей базы данных даты, вы можете запланировать резервное копирование один раз в день. Затем используйте sugarsync, чтобы скопировать этот файл в пункт назначения, а затем восстановить его.
  2. Репликация. Если вам нужны базы данных, которые будут синхронизироваться в любое время с минимальной задержкой, я бы предложил вам посмотреть на репликацию. Это позволит вам копировать транзакции из одной базы данных в другую.
0

Нет, боюсь, вы не можете просто синхронизировать файлы базы данных с помощью средства синхронизации файлов, чтобы синхронизировать базы данных.

Синхронизация баз данных называется «репликацией», и в руководстве mysql, посвященном репликации, имеется целая глава 1.

2

Вопрос - год, но в случае, если кто-то еще сталкивается с этим, подумал, что я бы добавил это. Я действительно делал именно то, что этот человек пытался в течение нескольких лет использовать Dropbox. Я поместил файлы данных MySQL в общую папку Dropbox и отредактировал mysql.ini, чтобы сообщить, что они не находятся в местоположении по умолчанию. Ключом к его успешной работе является запуск/остановка MySQL при переключении между компьютерами. Например, если я работаю дома, я запускаю EasyPHP (используя это вместо XAMPP). Мои htdocs находятся в символической папке, которая также совместно используется Dropbox. Я делаю свою работу здесь, а затем закрываю EasyPHP. Когда я иду в офис, все синхронизируется, и я запускаю EasyPHP там.

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

Я уверен, что существует множество причин, почему это не «правильный» способ сделать это, но он безупречно работает для меня с нулевой потерей данных или ошибок.

Смежные вопросы