Вход

Просмотр полной версии : Ошибка TemplaVoila после переноса базы данных


dodger
25.04.2010, 12:05
Здравстуйте!

C TYPO3 никогда не сталкивался. Но пришлось, и пришлось именно с проблемы. Посему обращаюсь к Вам, уважаемые! Помогите пожалуйста разобраться.

Стоял сайт на TYPO3, с базой данных на этом же FreeBSD-сервере (в джаиле 127.0.0.3), работал нормально. Но мне пришлось как администратору вынести базу данных на отдельный сервер (чтобы разгрузить хостинг от СУБД). Сам сайт я не админю, только сервер.

Сделал дамп:
mysqldump --add-drop-table --extended-insert --no-create-db --add-locks -r ~dodger/dbname_mysql_dump.sql -u root -h 127.0.0.3 -p dbname

Перенес дамп на отдельный сервер, сделал базу:
create database `dbname` character set 'cp1251' collate 'cp1251_general_ci';
grant all privileges on `dbname`.* to 'dbuser'@'hosting_ip' identified by 'password';
flush privileges;
use dbname;
source ~dodger/dbname_mysql_dump.sql

Дамп загрузился без ошибок и warning-ов. Меняю в typo3conf/localconf.php переменную $typo_db_host на доменный адрес нового СУБД-сервера (остальные параметры не менялись - имя базы, имя юзера, пароль). И сайт теперь отказывается работать с ошибкой:
TemplaVoila ERROR:
Couldn't find a Data Structure set for table/row "pages:1".
Please select a Data Structure and Template Object first.

Почему?

void
25.04.2010, 14:39
Бекенд работает? Вообще подозрительно, что у вас кодировка 1251. Раньше была такая же?

dodger
25.04.2010, 14:51
Не совсем понял, бэкэнд - это что?
СУБД работает, если выключить - ругается по другому.
А базы у нас на хостинге все cp1251, но владелец сайта может выставить самостоятельно. Как это проверить по содержимому dump-файла?

Вот куски дамп файла:

/*!40101 SET NAMES utf8 */;
....
DROP TABLE IF EXISTS `be_groups`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `be_groups` (
`uid` int(11) unsigned NOT NULL AUTO_INCREMENT,
....
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=cp1251;
SET character_set_client = @saved_cs_client;

--
-- Dumping data for table `be_groups`
--

LOCK TABLES `be_groups` WRITE;
/*!40000 ALTER TABLE `be_groups` DISABLE KEYS */;
INSERT INTO `be_groups` VALUES (1,0,1238150599,'п| б| п| б╣п| р~Qп| б╟п| я~Tп║Б~@~Zп| я~Uп║п~Bп║Б~@╧','pages:doktype,pages:TSconfig,page s: ..............


Вот это вот поле после timestamp с кириллицей я ничем интерпретировать не могу - зюки всегда получаются. Неужели такая ошибка может быть из-за кодировки?

-=UncleByte=-
25.04.2010, 15:22
Ну так в начале дампа явно указаноSET character_set_client = utf8;
Вообще говоря сайты на TYPO3 сделанные в 1251 редкость.

dodger
25.04.2010, 15:48
Удалил базу, пересоздал заново с кодировкой utf8. Залил в нее бэкап mysqlhotcopy. Некоторые таблицы были в InnoDB, поэтому mysqlcheck -u root -p -B dbname сругался на отсутствующие таблицы. Убрал DROP TABLES из дампа базы, и залил его поверх. Ругани было валом, не успевал читать.

Вот с такими ошибкам, но каким-то чудом работает:

Error : Table 'dbname.cache_hash' doesn't exist
Error : Table 'dbname.cache_imagesizes' doesn't exist
Error : Table 'dbname.cache_md5params' doesn't exist
Error : Table 'dbname.cache_pages' doesn't exist
Error : Table 'dbname.cache_pagesection' doesn't exist
Error : Table 'dbname.cache_typo3temp_log' doesn't exist
Error : Table 'dbname.fe_session_data' doesn't exist
Error : Table 'dbname.fe_sessions' doesn't exist
Error : Table 'dbname.index_fulltext' doesn't exist
Error : Table 'dbname.index_grlist' doesn't exist
Error : Table 'dbname.index_phash' doesn't exist
Error : Table 'dbname.index_rel' doesn't exist
Error : Table 'dbname.index_section' doesn't exist
Error : Table 'dbname.index_stat_search' doesn't exist
Error : Table 'dbname.index_stat_word' doesn't exist
Error : Table 'dbname.index_words' doesn't exist
Error : Table 'dbname.sys_log' doesn't exist
Error : Table 'dbname.tx_realurl_chashcache' doesn't exist
Error : Table 'dbname.tx_realurl_pathcache' doesn't exist
Error : Table 'dbname.tx_realurl_urldecodecache' doesn't exist
Error : Table 'dbname.tx_realurl_urlencodecache' doesn't exist


ЗЫ: Спасибо участнику void - по его подписи зашел в FAQ и прочитал, что не надо ставить TYPO3 на базу в кодировке отличной от UTF8.