Ученик (105)

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

Есть база, объем большой, около 40 ГБ. Вопрос - как перенести все это счастье на Linux? Думал - можно просто файлы типа ibdata1 перенести, конфиги подкрутить - да и все. Провозился часа 4, нихрена. Чего делать? Спасибо.
Регистрируйтесь, делитесь ссылками в соцсетях, получайте на WMR кошелек 20% с каждого денежного зачисления пользователей, пришедших на проект по Вашей ссылке. Подробнее
После регистрации Вы также сможете получать до 175 руб за каждую тысячу уникальных поисковых переходов на Ваш вопрос или ответ Подробнее
ОТВЕТЫ
Знаток (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';