LinuxForum.Fans
Тема

Миграция MySQL между CentOS 5.7 MySQL 5.0.27 и CentOS 6.3 MySQL 5.5.25

Автор: alterkpn 6 сообщений 2547 просмотров
#265068

Возникла необходимость провести подобную миграцию серверов.
Всё перенеслось без проблем, и Samba шары и апач.
Но при переносе баз MySQL методом mysqldump > mysql при импорте постоянно идут ошибки.
Насколько я понимаю - у серверов разных версий несколько различаются форматы данных, по этой причине и идут ошибки (и при создании таблиц и при импорте данных).
Естественно возникает вопрос: - как всё таки перенести базы?

Надеюсь, что кто-то уже сталкивался и успешно решил проблему.

#265071

Ошибки-то покажете?

#265120
Hrafn написал:
Ошибки-то покажете?

Да, пожалуйста:

как пример...


18:42:51 Restoring C:\MysqlBasesbackup\Dump20120716.sql

Running: mysql.exe --defaults-extra-file="c:\users\pe03a~1.kos\appdata\local\temp\tmpt8rfto.cnf" --protocol=tcp --host=localhost --user=root --port=13945 --default-character-set=utf8 --comments < "C:\\MysqlBasesbackup\\Dump20120716.sql"

ERROR 1067 (42000) at line 918: Invalid default value for 'QUANTITY'


Operation failed with exitcode 1

18:42:55 Import of C:\MysqlBasesbackup\Dump20120716.sql has finished with 1 errors

И + блок из дампа, начинающийся с 918й строки:

Показать
CREATE TABLE `b_sale_basket` (
`ID` int(11) NOT NULL auto_increment,
`FUSER_ID` int(11) NOT NULL,
`ORDER_ID` int(11) default NULL,
`PRODUCT_ID` int(11) NOT NULL,
`PRODUCT_PRICE_ID` int(11) default NULL,
`PRICE` decimal(18,2) NOT NULL,
`CURRENCY` char(3) collate utf8_unicode_ci NOT NULL,
`DATE_INSERT` datetime NOT NULL,
`DATE_UPDATE` datetime NOT NULL,
`WEIGHT` double(18,2) default NULL,
`QUANTITY` double(18,2) NOT NULL default '0,00',
`LID` char(2) collate utf8_unicode_ci NOT NULL,
`DELAY` char(1) collate utf8_unicode_ci NOT NULL default 'N',
`NAME` varchar(255) collate utf8_unicode_ci NOT NULL,
`CAN_BUY` char(1) collate utf8_unicode_ci NOT NULL default 'Y',
`MODULE` varchar(100) collate utf8_unicode_ci default NULL,
`CALLBACK_FUNC` varchar(100) collate utf8_unicode_ci default NULL,
`NOTES` varchar(250) collate utf8_unicode_ci default NULL,
`ORDER_CALLBACK_FUNC` varchar(100) collate utf8_unicode_ci default NULL,
`DETAIL_PAGE_URL` varchar(250) collate utf8_unicode_ci default NULL,
`DISCOUNT_PRICE` decimal(18,2) NOT NULL default '0.00',
`CANCEL_CALLBACK_FUNC` varchar(100) collate utf8_unicode_ci default NULL,
`PAY_CALLBACK_FUNC` varchar(100) collate utf8_unicode_ci default NULL,
`CATALOG_XML_ID` varchar(100) collate utf8_unicode_ci default NULL,
`PRODUCT_XML_ID` varchar(100) collate utf8_unicode_ci default NULL,
`DISCOUNT_NAME` varchar(255) collate utf8_unicode_ci default NULL,
`DISCOUNT_VALUE` char(32) collate utf8_unicode_ci default NULL,
`DISCOUNT_COUPON` char(32) collate utf8_unicode_ci default NULL,
`VAT_RATE` decimal(18,2) default '0.00',
PRIMARY KEY (`ID`),
KEY `IXS_BASKET_LID` (`LID`),
KEY `IXS_BASKET_USER_ID` (`FUSER_ID`),
KEY `IXS_BASKET_ORDER_ID` (`ORDER_ID`),
KEY `IXS_BASKET_PRODUCT_ID` (`PRODUCT_ID`),
KEY `IXS_BASKET_PRODUCT_PRICE_ID` (`PRODUCT_PRICE_ID`),
KEY `IXS_SBAS_XML_ID` (`PRODUCT_XML_ID`,`CATALOG_XML_ID`)
) ENGINE=MyISAM AUTO_INCREMENT=111 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

делал через через Mysqlworkbench 5.2

#265127
alterkpn написал:
[quote=Hrafn]Ошибки-то покажете?

Да, пожалуйста:

как пример...
[/quote]
Я бы сделал в новой базе таблицу с аналогичной структурой и сохранил бы её в дамп. А потом - сравнил бы различия...

#265640

Сделал менее изящно, чем хотелось бы, но работает:

Перенёс все бинарные файлы из /var/lib/mysql, старые перед этим перенес в резервную копию
Сервер вполне удачно стартовал.
Далее через Phpmyadmin проверил все таблицы в базах, при выдаче сообщения об ошибках следующим шагом восстанавливал.

Войдите или зарегистрируйтесь, чтобы ответить.