Как перенести базу данных MySQL с Windows на Linux (Ubuntu в частности)?

Есть база, объем большой, около 40 ГБ. Вопрос - как перенести все это счастье на Linux? Думал - можно просто файлы типа ibdata1 перенести, конфиги подкрутить - да и все. Провозился часа 4, нихрена. Чего делать? Спасибо.
Регистрируйтесь, делитесь ссылками в соцсетях, получайте на WMR кошелек 20% с каждого денежного зачисления пользователей, пришедших на проект по Вашей ссылке. Подробнее
ОТВЕТЫ
Знаток (425)
Если есть две машины, на одной Линукс на другой Винда, берешь my.cnf на линуксе - там комментируешь строку bind-address 127.0.0.1 - таким образом разрешаешь удаленные подключения.

Даешь своему юзеру, которым собрался из Винды подключаться, все права:
GRANT ALL ON *.* TO 'USERNAME'@'IP_ADDRESS' IDENTIFIED BY 'PASSWORD';

Здесь USERNAME - юзер, который будет коннектиться от Винды, IP_ADDRESS - адрес хоста, откуда будешь коннектиться (я так полагаю, сеть локальная), PASSWORD - пароль этого юзера.

При помощи SQLYog подключаешься к виндовой базе и к линуксовой (два соединения). Правой кнопкой тыкаешь по той базе, которая у тебя на винде - выбираешь Copy to Different Host или как-то так. Выбираешь что и куда копировать. Вот и вся сказка.

PS Не забудь потом установить обратно bind-address, иначе можно будет откуда угодно коннектиться. Ну, и юзера убрать грантанутого...
Знаток (425)
Сдается мне, прощее можно сделать - в том же SQLYog есть Synchronization Wizard. Мне кажется, быстрее будет. Хотя хз
Знаток (425)
А просто скопировать ibdata1 и прочее в нужную папку - нельзя?
Знаток (425)
GRANT ALL ON *.* TO 'USERNAME'@'IP_ADDRESS' IDENTIFIED BY 'PASSWORD';

Ну не, таким образом пароли будут храниться в системной таблице mysql в НЕЗАШИФРОВАННОМ ВИДЕ. Следует писать так:

GRANT ALL ON *.* TO 'USERNAME'@'IP_ADDRESS' IDENTIFIED BY PASSWORD 'my_goddamn_secure_pass';