Я переношу веб-серверы. Я как бы застрял на переносе баз данных MySQL. Мне было интересно, где найти файлы .SQL, которые мне нужны для миграции, под Ubuntu Server. Я думаю, что файлы .SQL - единственные, которые мне нужны. Я буду выполнять миграцию с FTP и SSH. Любая помощь будет принята с благодарностью.
MySQL не хранит данные в виде файлов .sql. Он хранит данные в виде файлов MyISAM или InnoDB, которые обычно хранятся в / var / lib / mysql.
Если вам нужно экспортировать в файлы SQL, вы можете сделать это с помощью команды mysqldump.
По умолчанию MySQL хранит свои файлы в /var/lib/mysql
но если расположение по умолчанию было изменено, более надежный способ узнать, где хранятся файлы, - это проверить файл конфигурации:
grep datadir /etc/mysql/my.cnf
Обратите внимание, что файлы базы данных не заканчиваются на .SQL. Частично это зависит от типа движка (MyISAM, InnoDB и т. Д.), Но вы увидите файлы, оканчивающиеся на .MYD (данные MyISAM) или .MYI (индекс MyISAM) и другие. Вам понадобятся все эти файлы, поэтому скопируйте весь каталог.
Если вы собираетесь перенести файлы путем прямого копирования, имейте в виду, что вы захотите выключить базу данных с помощью /etc/init.d/mysql stop
Во-первых, в противном случае файлы могут оказаться в несогласованном состоянии, которое потребует восстановления и / или могут содержать несогласованные или поврежденные данные. Если вы выключите базу данных, то вполне разумно скопировать файлы с помощью:
rsync -av /var/lib/mysql/ remotehost:/var/lib/mysql/
С помощью -a
с участием rsync
сохранит право собственности и разрешения на файлы, что важно. Также обратите внимание, что с rsync
эти завершающие слэши в каталогах важны.
Метод копирования файлов удобен тем, что вам не нужно делать дамп / восстановление, однако имейте в виду, что это вызовет проблемы при переходе между разными архитектурами или версиями базы данных. При переходе между версиями базы данных вам также захочется прочитать о mysql_upgrade который может работать с указанным выше rsync
метод.
Если вы хотите перенести данные без необходимости выключать базу данных и / или вам нужно выполнить миграцию между разными версиями mysql или разными архитектурами, вы можете использовать mysqldump или mysqlhotcopy.
Вам нужно будет создать свой собственный файл .SQL, используя mysqldump -u <User> -p <Database Name> > dump.sql
.
Затем вам нужно импортировать его на свой новый сервер, используя mysql -u <User> -p < dump.sql
.
Очевидно, заменяя подходящей для вас информацией.