Я только что установил свой новый сервер, сейчас в углу, и сейчас я переношу на него службы из существующего ящика. Мне нужно переместить mysql и apache.
Как лучше всего все переместить? Просто скопируйте все корни каталогов apache и сайты (файлы конфигурации), я предполагаю, что это лучший / единственный способ получить apache, но с mysql я, очевидно, хочу сохранить все пароли для вещей, поэтому я должен просто сделать резервную копию и восстановить, или я могу заставить их разговаривать с каждым и сказать одному серверу, чтобы он просто забирал данные с другого?
РЕДАКТИРОВАТЬ: Я могу позволить себе отключить сайт на 30 минут или около того, если это имеет значение.
Основываясь на том, что сказал Глеб, и на том, что Google нашел для меня:
mysqldump -u user -p password thedb | ssh user@newserver mysql -u user -p password thedb
Обучение использованию mysqldump не повредит, и это поможет вам сделать резервные копии ваших баз данных и перенести их на другой сервер. Пароли и некоторые другие полезные вещи хранятся в базе данных с именем mysql. Простой пример:
mysqldump -u myuser -p mypassword mydatabase > dump.sql
Затем просто загрузите его в mysql где-нибудь еще.
Как сказал Глеб, использование mysqldump - это самый простой способ (в зависимости от трафика в базе данных. Очень тяжелый, и mysqldump не подхватит некоторые изменения).
С apache просто выполните rsync всех каталогов заранее, а затем сделайте это снова, когда будете готовы выполнить переключение. Таким образом вы минимизируете размер синхронизации, когда придет время.
Вы также захотите сделать это заранее, чтобы убедиться, что ваши различные файлы конфигурации были правильно подобраны и синхронизированы (и что вы получили их все).
Это не слишком сложно, но это хорошая практика для более крупных живых миграций.
Основываясь на фрагменте кода Gleb & darkhelmet, я настоятельно рекомендую запускать mysqldump с параметром --opt (в зависимости от вашей версии MySQL он может быть не по умолчанию), чтобы минимизировать объем передачи, а также несколько оптимизаций для дампа / процесс импорта.
Кроме того, как вы говорите, что хотите сохранить таблицы привилегий / пользователей, вы можете запустить с --all-databases.
Другой вариант, который у вас есть, - это использовать репликацию MySQL, чтобы (как вы это выразились) засасывать данные. Я предполагаю, что у вас не включено ведение двоичного журнала (если бы вы это сделали, процесс был бы безболезненным).
Один из наиболее важных моментов при использовании mysqldump - убедиться, что вы запускаете все с правильным набором символов (использование latin1, если у вас есть данные utf8, может вызвать некоторые "интересные" проблемы).