Как перенести все базы mysql из файлов Win в Linux?
Имеется доступ к папке на винте, где крутился MySQL под win7, что-то_там/data/, где куча папок с именами БД, внутри каждой — куча файлов имя_таблицы.frm в самой папке data также присутствуют 3 тяжелых файла ib_logfile0, ib_logfile1, ibdata1 и 1 файл с именем ИМЯ_КОМПЬЮТЕРА.err.
Как теперь перенести все базы оттуда в MySQL под ubuntu?
UPD:
так как простым переносом файлов все не обошлось (mysql помер, реанимация была тяжелой), поднял новый mysql-сервер на win7, скопировал старые файлы, оставив из новых ib_logfile0, ib_logfile1, mysql/; переименовал ИМЯ_СТАРОГО_КОМПЬЮТЕРА.err в ИМЯ_НОВОГО_КОМПЬЮТЕРА.err (не уверен, что это было необходимо — возможно, можно было обойтись без замены этого файла, но описываю здесь как я решил свою проблему), перезапустил сервис mysql и дальше просто через mysqldump сделал дамп всех баз и восстановил его уже в убунте.
Теоретически никаких проблем не возникает у меня. Просто в Линуксе сделайте бэкап папочки data, после чего удалите ее, и на ее место перенесите папку из виндовой базы.
Если все сделавно верно и версии MySQL идентичны, все пройдет без проблем.
p.s. рестарт не забудьте :)
у меня вот возникли… Попробовал просто перенести файлы, оставив из родных только папки «mysql» и «phpmyadmin» и те файлы, которых не было на win7 («debian-5.1.flag», «mysql_upgrade_info», «ubuntu.pid») — в итоге MySQL стал зависать на перезагрузке. Попробовал остановить — долго останавливался, а потом не запустился (завис на «service mysql start»). Вот сейчас только смог восстановить его работоспособность (не эксперт в работе с линухом — поэтому заняло у меня немало времени) и хотелось бы в этот раз как-нибудь без переустановок обойтись :)
Тут ответом ниже говорится «myIsam можно перенести просто копированием. innoDВ дампом.», а у меня большинство (скорее всего, даже все) БД были InnoDB. Но дамп сделать не представляется возможным ибо, как Вы верно заметили ниже, win7, под которой крутился тот MySQL, ныне покоится на покрошившемся винте.
Кстати, относительно идентичности версий — они абсолютно точно не идентичны. Разница между версиями, хоть и не большая, но есть (на win7 стояла более старая версия, примерно полугодовой-годичной давности)
Надежнее всего использовать mysqldump и mysql database < dumpfile.sql
В крайнем случае можно использовать phpmyadmin для генерации дампа и mysqldumper для его загрузки (или опять же mysql database < dumpfile.sql), но я сталкивался с тем, что при генерации дампа phpmyadmin'ом и его загрузке в базу mysql ругается на некоторые комменты…
Собственно что я и озвучил. Но если человек ставит задачу перекинуть папку с данными, наверное исходная ОСь у него мертва. И все ваши манипуляции сведутся к нулю. Я не думаю что автор круглый идиот.
Если будете переносить просто копированием файлов, учтите, что в Linux имена файлов регистрозависимые. А поскольку таблица — это файл, то в sql-запросе надо использовать имена таблиц в том же регистре, в котором названы файлы таблиц.