Pacific писал(а):На попытку импорта дампа получаю ругань типа закончилось время выполнения скрипта.
Обычное дело, когда БД не маленькая, а производительности сервера не хватает на то, чтобы такую базу за один заход импортировать. Проверьте в настройках phpmyadmin (прямо в веб-интерфейсе), чтобы в разделе "Импорт" стояла галочка "Частичный импорт: разрешает прерывание". Если галочка стоит, то тупо повторяем импорт до тех пор, пока вся база не зальется. При этом каждый следующий импорт будет заливать новую порцию данных, а не начинать все сначала.
У меня дамп БД размером 50МБ на Cubietruck заливается обычно на шестой итерации. Сообщения phpmyadmin при этом выглядят так: Достигнут временной лимит. Если вы хотите завершить импорт, перезапустите его выбрав тот же файл, и процесс продолжится с того места на котором остановился.
Процесс импорта был прерван из-за приближения временного лимита, после перезапуска импорт будет продолжен с позиции 6821421.
Если шаманства с phpmyadmin не нравятся, и есть опыт работы с консолью, то то же самое можно делать с помощью консольного клиента mysql. Такой способ даже предпочтительнее будет.
В phpmyadmin по умолчанию стояла галочка "Частичный импорт: разрешает прерывание". Но повтор импорта приводил к ошибкам, причем разным :
#1062 - Duplicate entry '1' for key 'PRIMARY'
#1046 - No database selected
решения в нете я нашел, но не стал дергаться, ибо решил, что из исходного дампа мало что останется.
полез в консоль и быстренько всё сделал, как вы писали.
Однако, после запуска МЖД я снова остался с первоначальными настройками.
Возникло одно подозрение. Я уже упоминал, что у меня не происходит обновление времени по NTP. Может, это случай, описанный вами тут http://majordomo.smartliving.ru/forum/v ... =80#p25272
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3
Pacific писал(а):Однако, после запуска МЖД я снова остался с первоначальными настройками.
Возникло одно подозрение. Я уже упоминал, что у меня не происходит обновление времени по NTP. Может, это случай, описанный вами тут http://majordomo.smartliving.ru/forum/v ... =80#p25272
Вполне может быть. Но сразу замечу, пропадают только значения свойств объектов, история сообщений. Сами классы, объекты, методы и сценарии при этом не затрагиваются.
Чтобы не попадать в замкнутый круг с удалением накопленных данных, можно либо закомментировать эти строки (см. ту ссылку), либо вручную установить системное время, а после запустить главный цикл.
Классы, объекты, их свойства, сценарии - все хранится в БД. Поэтому после импорта дампа со старого сервера в пустую базу на новом сервере все они должны появиться. А удаляться из-за не настроенного системного времени могут только значения свойств объектов (например, история значений температуры, влажности и пр).
skysilver писал(а):Классы, объекты, их свойства, сценарии - все хранится в БД. Поэтому после импорта дампа со старого сервера в пустую базу на новом сервере все они должны появиться.
а у меня они не появляются. Поковыряю вечером. Есть подозрение, что я сделал неправильно это:
skysilver писал(а):1. На исходной системе делаем копию каталога с файлами MJD (www или htdocs).
и у меня восстанавливается не всё.
Спасибо!
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3
Дамп базы на старом сервер корректно сделан? Его можно открыть в обычном текстовом редакторе и проверить, попали ли в него ваши классы и объекты. На новом сервер лучше базу создать заново и импортировать дамп в эту пустую базу. Ну и с именами баз надо повнимательнее. А то поди в конфиге MJD одна база указана, а импорт идет в другую.
Я выяснил, что все объекты и тд лежат в db_terminal и на Винде и на малине.
Экспериментов было много, выделю три.
Эксперимент А:
1. остановил циклы МЖД из консоли
2. на малине удалил БД db_terminal
3. на малине создал пустую БД db_terminal
4. из консоли сделал импорт db_terminal
5. в phpMyAdmin на малине открыл db_terminal/objects и нашел свои объекты
6. удаленно зашел в МЖД (циклы по-прежнему не запущены), увидел свои объекты
7. запустил из консоли МЖД, обновил веб-морду – мои объекты исчезли.
Хрень какая-то!
Эксперимент Б:
То же, что и А, только на малине папку /var/www/ очистил и скопировал туда содержимое c:\_majordomo\htdocs\ на Винде и в пункте 7 получил:
Fatal error: Call to a member function DbSafe() on a non-object in /var/www/lib/mysql.class.php on line 378
Я подумал, что МЖД каждый раз по какой-то причине возвращается к первоначальным настройкам. И, раз я не могу найти эту причину, то надо удалить эти настройки.
Эксперимент В:
То же, что и А, только на малине очистил папку /var/www/saverestore в пункте 7 мои объекты не исчезли. Зато на главной странице вместо меню было длинное сообщение об ошибке. Тут я прервал работу и усыпил комп с которого удаленно рулил малиной. Через час разбудил комп – ошибка в меню исчезла, МЖД работает отлично! Само! Мне только еще пришлось скопировать файл my.class.php со своими функциями из Винды c:\_majordomo\htdocs\ на малину /var/www/. Своих картинок и звуков я не добавлял, поэтому больше ничего копировать не пришлось.
Спасибо большое за действительно реальную помощь.
А теперь ньюанс. Причина, по которой МЖД самовосстанавливалась, видимо не устранена, поэтому каждый раз при перегрузке малины МЖД просит ввести часовой пояс и язык. Установка часов на малине вручную на это никак не повлияла.
Где копнуть?
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3
рано радовался...
Сегодня утром первым делом полез на главную страницу МЖД - все работает. Посидел часок, отлучился на 20 мин, обновляю страничку - снова вместо меню ошибка:
Sorry, page is temporary unavailable.
Please try again later.
<<< Back to previous page
http://192.168.1.101/menu.html
Error:
0:
SELECT shouts.*, DATE_FORMAT(shouts.ADDED, '%H:%i') as DAT, TO_DAYS(shouts.ADDED) as DT, users.NAME, users.COLOR FROM shouts LEFT JOIN users ON shouts.MEMBER_ID=users.ID WHERE 1 ORDER BY shouts.ADDED DESC, ID DESC LIMIT 10
Скрипты при этом выполняются.
И снова в бой!
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3