Назад | Перейти на главную страницу

Где мне найти файлы .SQL на сервере Ubuntu?

Я переношу веб-серверы. Я как бы застрял на переносе баз данных 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.

Очевидно, заменяя подходящей для вас информацией.