Как заставить Magento нормально встать на новый хостинг?
Здравствуйте. Суть такова: пытаюсь поднять копию сайта на своём сервере, дабы потом допиливать необходимое и не бояться, что живой, рабочий сайт упадёт.
Все файлы перенесены, везде поправлен адрес нового сайта, в бд внесены изменения так же. С ней при импорте возникли проблемы (и не заканчиваются), пришлось заливать через консоль. Вроде, встала нормально, имею ввиду, вся, без критических ошибок в процессе.
В итоге сайт всё равно лежит, error-log кажет следующее:
Помогите, я на грани запоя. Предвосхищая вопрос: истошно гуглила, ничего не понимаю/либо не помогает.
Действительно, база залилась не вся почему-то.
Делала командой mysqldump -y -f -q —default-character-set=binary —create-options —single-transaction —skip-extended-insert —add-drop-table -h localhost -u p218811_anna -pubigasanbu p218811_okno > oknoinjapan.sql получила ответ консоли:
Warning: Using a password on the command line interface can be insecure.
mysqldump: Got error: 1044: Access denied for user 'p218811_anna'@'' to database 'add-drop-table' when selecting the database
При прочих равных, с другого компьютера почему-то в первый раз залилось нормально, полностью и без ошибок, только с варнингом.
> Вроде, встала нормально, имею ввиду, вся, без критических ошибок в процессе.
В случае с БД полумеры не допускаются. Или импорт был осуществлен нормально от и до, или нет. Любой, даже мелкий косяк, при импорте БД потом обычно аукается так, что эхо слышно в горах Закавказья.
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\’\’,
`first_visit_at` datetime default NULL,
`last_visit_at` datetime N' at line 3
извините, я понимаю в этом чуть больше, чем ничего. похоже, где-то вы ошиблись при наборе запроса?
Если дамп бд очень большой, то обычно его режут спец. средствами. Еще в mysql есть такой параметр, который в моей вольной интерпретации звучит как "максимальный размер запроса в байтах". Он должен быть больше самого большого неделимого запроса. Типа инсерт с данными, который нельзя разделить на два запроса.
Ищите в гугле по фразе "SQL Dump File Splitter". А по поводу mysql параметра, то называется он "max_allowed_packet".
А конкретно по вашей ошибке, то konstantin_s90 правильно советует. В логе сообщается, что нет таблицы, значит ее нужно создать. Это кстати, одна из стандартных таблиц магенты.
Анн Кауффман: Иногда помогает итеративная заливка. Я так делаю на шаред хостингах, где есть ограничения. Обычно дамп импортируется весь на третий раз (т.е. просто накатываем дамп последовательно несколько раз). Но лучше, конечно, воспользоваться sql сплиттером.
Юра Герасименко: то есть, просто скомандовать эту же команду несколько раз, пока не зальётся полностью? просто из веб-интерфейса такой метод тоже должен работать, но не помог.
Анн Кауффман: Еще есть разница в том как вы делали дамп. Через mysqldump или phpmyadmin. Когда делал через phpmyadmin бывали баги потом при импорте через консоль. Лучше создать дамп через mysqldump. Если же есть только phpmyadmin, то создавайте в режиме совместимости с MysQL4. Либо используйте adminer.php: www.adminer.org
Юра Герасименко: я не понимаю что делаю не так, командую команду, читаю ошибку, очистила базу, которая была, а она не заполняется вновь.
к тому же да, что-то было с базой до этого, свежая — в два раза больше, но при этом адрес сайта пришлось заменить 64 вместо 17k и залилась быстрее на хостинг.
--
-- Структура таблицы `adminnotification_inbox`
--
CREATE TABLE IF NOT EXISTS `adminnotification_inbox` (
`notification_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Notification id',
`severity` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Problem type',
`date_added` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Create date',
`title` varchar(255) NOT NULL COMMENT 'Title',
`description` text COMMENT 'Description',
`url` varchar(255) DEFAULT NULL COMMENT 'Url',
`is_read` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Flag if notification read',
`is_remove` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT 'Flag if notification might be removed',
PRIMARY KEY (`notification_id`),
KEY `IDX_ADMINNOTIFICATION_INBOX_SEVERITY` (`severity`),
KEY `IDX_ADMINNOTIFICATION_INBOX_IS_READ` (`is_read`),
KEY `IDX_ADMINNOTIFICATION_INBOX_IS_REMOVE` (`[...]
Ответ MySQL: Документация
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=InnoDB COMMENT='Adminnotification Inbox' AUTO_INCREMENT=326' at line 24
Анн Кауффман: Попробуйте экспорт (дамп) сделать через adminer.php (заливаете в корень сайта и потом просто через браузер вызываете), а импорт через консоль. Вообще, какой размер у дампа?
через консоль mysqldump -y -f -q —default-character-set=binary —create-options —single-transaction —skip-extended-insert —add-drop-table -h localhost -u p218811_anna -pubigasanbu p218811_okno > oknoinjapan.sql после этой команды выводится ошибка Got error: 1044: Access denied for user 'p218811_anna'@'%' to database 'add-drop-table' when selecting the database
и ничего не происходит.
размер базы каждый раз разный почему-то. в этот — 54,2 мб. (сделала дамп снова, в этот раз количество замен было 27k)
Анн Кауффман: Нижеследующие ошибки - это стэк вызова, т.е. какие файлы и функции в них были вызваны, начиная с index.php до, собственно, ошибки. Стек помогает проследить всю цепочку событий, что весьма полезно при анализе возникшей ошибки.