3.15 Копирование баз данных MySQL на другой компьютер
В тех случаях, когда вам нужно перенести базы данных между различными архитектурами, вы можете использовать mysqldump для создания файла, содержащего SQL-запросы. Затем вы можете перенести этот файл на другой компьютер и использовать его в качестве входных данных для клиента mysql.
Используйте mysqldump --help для просмотра доступных опций.
Если на сервере, где вы создаёте дамп, используются GTID (gtid_mode=ON), по умолчанию mysqldump включает в дамп содержимое набора gtid_executed для переноса этих данных на новый компьютер. Результаты могут варьироваться в зависимости от версий MySQL Server. Проверьте описание опции mysqldump --set-gtid-purged, чтобы узнать, что происходит с используемыми вами версиями, и как изменить поведение, если результат по умолчанию не подходит для вашей ситуации.
Самый простой (хотя и не самый быстрый) способ перемещения базы данных между двумя компьютерами — выполнить следующие команды на компьютере, на котором расположена база данных:
mysqladmin -h 'other_hostname' create db_name
mysqldump db_name | mysql -h 'other_hostname' db_name
Если вы хотите скопировать базу данных с удалённого компьютера по медленному сетевому соединению, вы можете использовать следующие команды:
mysqladmin create db_name
mysqldump -h 'other_hostname' --compress db_name | mysql db_name
Также вы можете сохранить дамп в файл, перенести файл на целевой компьютер и затем загрузить его в базу данных. Например, вы можете создать дамп базы данных в сжатый файл на исходном компьютере следующим образом:
mysqldump --quick db_name | gzip > db_name.gz
Перенесите файл с содержимым базы данных на целевой компьютер и выполните там следующие команды:
mysqladmin create db_name
gunzip < db_name.gz | mysql db_name
Также можно использовать mysqldump и mysqlimport для переноса базы данных. Для больших таблиц это намного быстрее, чем просто использование mysqldump. В следующих командах DUMPDIR представляет полное имя пути к каталогу, который используется для хранения вывода из mysqldump.
Сначала создайте каталог для выходных файлов и создайте дамп базы данных:
mkdir DUMPDIR
mysqldump --tab=DUMPDIR
db_name
Затем перенесите файлы из каталога DUMPDIR в соответствующий каталог на целевом компьютере и загрузите файлы в MySQL:
mysqladmin create db_name # create database
cat DUMPDIR/*.sql | mysql db_name # create tables in database
mysqlimport db_name
DUMPDIR/*.txt # load data into tables
Не забудьте скопировать базу данных mysql, так как там хранятся таблицы разрешений. Возможно, вам придётся выполнять команды от пользователя MySQL root на новом компьютере до тех пор, пока база данных mysql не будет установлена.
После импорта базы данных mysql на новый компьютер, выполните команду mysqladmin flush-privileges, чтобы сервер перезагрузил информацию из таблицы разрешений.
© 2025 Oracle
Licensed under the GPLv2 License.