it-swarm.com.ru

Перенос базы данных Mysql на другой компьютер

У меня есть база данных mysql, заполненная и работающая на компьютере Windows, есть ли инструмент для переноса базы данных на другой компьютер (работает с Ubuntu)?

В противном случае я просто напишу script, чтобы перенести всю базу данных в SQL и insert на другом компьютере. Просто пытаюсь сэкономить время :)

Спасибо вам всем.

27
fmsf

Инструмент, о котором вы говорите, уже существует: mysqldump

Выдает дамп в sql, который затем можно скопировать на другой компьютер и загрузить заново.

например:

по источнику:

mysqldump -u username -p databasename > dumpfile.sql

Затем используйте ftp/rsync/what для перемещения файла на конечный компьютер и там создайте пустую базу данных для импорта и запуска:

mysql -u username -p databasename < dumpfile.sql

Вам также нужно будет установить разрешения для любых пользователей, которые также могут быть переданы, поскольку они не хранятся в базе данных.

Кроме того, вы можете скопировать файлы из каталога данных mysql, но mysqldump - самый простой и надежный способ.

Стоит отметить, что имена таблиц могут стать чувствительными к регистру в одной системе, если их не было в оригинале. Это зависит от конфигурации на обоих концах - в частности, чувствительности к регистру (или иным образом) файловой системы.

31
benlumley

Вместо того, чтобы экспортировать базы данных одну за другой, вы можете экспортировать их все одной командой. Затем импортируйте их .. напр.

mysqldump -u username -p --all-databases > c:\alldbs.sql

PS- Самое большое преимущество в том, что вы не теряете пользовательские привилегии.

17
Sanjay Zalke

Файлы на диске на 100% совместимы между всеми выпусками MySQL. Вам просто нужно следить за регистром имен файлов, потому что это важно в Unix, в то время как в Windows это только иногда имеет значение.

И не забудьте остановить MySQL, прежде чем взять копию. Файлы MyISAM можно использовать для копирования во время работы, но файлы InnoDB не совсем безопасны, и Windows MySQL по умолчанию использует файлы InnoDB.

2
staticsan

Будьте осторожны с наборами символов при использовании mysqldump, особенно в Windows. Я предпочитаю явно устанавливать кодировку, которую использует моя БД, и использовать --result-file = file вместо использования оператора>, чтобы что-то не стало искаженным.

2
Ariel Arjona

Из документации MySQL: http://dev.mysql.com/doc/refman/5.0/en/copying-databases.html

Shell> mysqldump --quick db_name | gzip > db_name.gz

Перенесите файл с содержимым базы данных на целевой компьютер и выполните там следующие команды:

Shell> mysqladmin create db_name
Shell> gunzip < db_name.gz | mysql db_name
1
Petre Lukarov

Я часто использую некоторые варианты этого однострочного для копирования базы данных по сети.

mysqldump --opt --compress --user=username database | mysql --user=username2 --password=p2 --Host=hostB -D database -C database

О чем я изначально читал здесь:

http://www.igvita.com/2007/10/10/hands-on-mysql-backup-migration/

0
AdamK

С новым MySQL Workbench (инструмент GUI), вы можете легко экспортировать базу данных и импортировать ее в базу данных, которую вы хотите перенести.

0
zhongxiao37

mysqldump должен выгрузить его правильно и сохранить набор символов чего-либо в базе данных. Желательно перейти на ту же версию MySQL, если вы не хотите проблем.

Файл, созданный mysqldump, НЕ является текстовым файлом, несмотря на внешний вид, не редактируйте его с помощью notepad.exe и т.д., Иначе у вас возникнут проблемы.

Дампы, создаваемые сторонними инструментами графического интерфейса, особенно phpmyadmin, обычно неточны и не обязательно будут корректно восстанавливаться.

0
MarkR

Вы можете сделать резервную копию с помощью любого графического инструмента, такого как Mysql Administrator ( http://dev.mysql.com/downloads/gui-tools/ в Windows, aptitude установить mysql-admin в Ubuntu) или phpmyadmin ( http://www.phpmyadmin.net/home_page/index.php в Windows, aptitude установите phpmyadmin в Ubuntu), а затем восстановите его на другом компьютере.

0
Gonzalo Quero