При использовании MySQL 3.23 можно копировать файлы .frm
, .MYI
и
.MYD
между различными архитектурами, поддерживающими одинаковый формат
чисел с плавающей точкой (все проблемы, связанные с перестановкой байтов,
берет на себя MySQL).
Имеющиеся в MySQL файлы данных и индексные файлы типа ISAM
(.ISD
и
*.ISM
соответственно) являются архитектурно-независимыми, а в ряде
случаев - зависимыми от операционной системы. Для переноса приложений на
компьютер с архитектурой или операционной системой, которые отличаются от
используемых на исходном компьютере, не следует пытаться перенести базу
данных путем простого копирования файлов на другой компьютер. Используйте
вместо этого mysqldump
.
По умолчанию mysqldump
создаст файл со всеми командами SQL. После этого
данный файл можно перенести на другой компьютер и подать его на вход
клиента mysql
.
Используя mysqldump --help
, просмотрите все доступные опции. При
перемещении данных на более новую версию MySQL следует применять mysqldump --opt
более новой версии, чтобы получить быструю и компактную копию.
Самый простой (хотя и не самый быстрый) способ перемещения базы данных с компьютера на компьютер - запустить на компьютере, где размещается исходная база данных, следующие команды:
shell> mysqladmin -h 'other hostname' create db_name shell> mysqldump --opt db_name \ | mysql -h 'other hostname' db_name
Если вы хотите скопировать базу данных с удаленного компьютера через медленную сеть, то можно использовать:
shell> mysqladmin create db_name shell> mysqldump -h 'other hostname' --opt --compress db_name \ | mysql db_name
Можно также сохранять результат в файле, затем передавать этот файл на требуемый компьютер и загружать этот файл в расположенную там базу данных. Например, можно скопировать базу данных в файл на исходном компьютере как показано ниже:
shell> mysqldump --quick db_name | gzip > db_name.contents.gz
(Созданный в данном примере файл сжимается). Передайте этот файл с содержимым базы данных на требуемый компьютер и запустите там эти команды:
shell> mysqladmin create db_name shell> gunzip < db_name.contents.gz | mysql db_name
Для выполнения передачи базы данных можно также использовать mysqldump
и
mysqlimport
. В случае больших таблиц это намного более быстрый способ, чем
простое применение mysqldump
. В следующих командах DUMPDIR
представляет
собой полный путь к каталогу, используемому для хранения вывода из
mysqldump
.
Во-первых, создайте каталог для файлов вывода и дампа базы данных:
shell> mkdir DUMPDIR shell> mysqldump --tab=DUMPDIR db_name
Затем передайте эти файлы в каталог DUMPDIR
некоторого соответствующего
каталога на требуемом компьютере и загрузите там данные файлы в MySQL:
shell> mysqladmin create db_name # создание базы данных shell> cat DUMPDIR/*.sql | mysql db_name # создание таблиц в базе данных shell> mysqlimport db_name DUMPDIR/*.txt # загрузка данных в таблицы
Помимо этого, не забудьте скопировать базу данных mysql
, поскольку в ней
хранятся таблицы привилегий (user
, db
, host
). Возможно, на новом
компьютере будет нужно запустить команды в качестве пользователя root
MySQL, пока база данных mysql
не займет свое место.
После импорта базы данных mysql
на новый компьютер выполните mysqladmin flush-privileges
, чтобы сервер перезагрузил информацию в таблицах
привилегий.