1

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

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

2

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

3

Upgrading MySQL from 5.0.x to 5.1.x здесь наглядно описывают процедуру обновления.

It is good day to die ...
MS Windows 10
Заметки о главном...

4

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

5

alterkpn пишет:
Hrafn пишет:

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

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

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

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

6

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

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