2.5.6 Модернизация к иной архитектуре
2.5.6 Модернизация к иной архитектуре
При использовании 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, чтобы сервер перезагрузил информацию в таблицах привилегий.