Обновил MySQL и сильно пожалел...

Главные вкладки

Аватар пользователя anser anser 30 марта 2008 в 23:47

Больше года на моем локальном компьютере с Win XP стояла связка Apache 2.0.54 + PHP 5.0.4 + MySQL 4.0.18. Здесь же работал сайт на Drupal 5. Недавно решил начать новый проект под Drupal 6, но он отказался устанавливаться из очень старой MySQL. Пришлось обновить БД до версии 5.0.18. Но появилась другая проблема с сайтом на Drupal 5.

Ранее при добавлении новой страницы с длинным текстом в Title он просто обрезался на какой-то длине, ошибок не выдавалось.

С новым сервером MySQL страница не добавляется. Появляется надпись "Страница не найдена" и текст предупреждения:

user warning: Data too long for column 'type' at row 1 query: INSERT INTO watchdog (uid, type, message, severity, link, location, referer, hostname, timestamp) VALUES (1, 'page not found', 'node/641', 1, '', 'http://go/node/641', '', '127.0.0.3', 1206904160) in E:\go\includes\database.mysql.inc on line 172.

В настройках адресов я указывал синоним для этой страницы (news/5). Теперь к странице невозможно достучаться ни по какому пути, выдается "страница не найдена" и предупреждение. Хотя сама страница не существует, указанный синоним больше использовать нельзя.

Если добавлять страницу с Title меньше максимального, всё нормально работает. Если кто-то сможет помочь, буду рад:

1) как вернуть "потерянный синоним"?
2) как избежать таких ошибок в дальнейшем?

Комментарии

Аватар пользователя direqtor direqtor 31 марта 2008 в 6:17

Собственно, ничто не мешает в довесок к пятой мускули, держать на компе еще и четвертую для старого сайта.
По собственному опыту знаю сколько глюков и геммора при переезде с 4 на 5. Проще посидеть месяцок на двух стульях и спокойненько выловить все баги.

Аватар пользователя anser anser 31 марта 2008 в 13:59

Не представляю, как можно настроить на 1 апач 2 разные MySQL. Видно, придется ставить вместо 5-й MySQL 4-ю поновее.

Аватар пользователя jason32 jason32 31 марта 2008 в 18:08

не пугайте человека разными портами....
MYSQL говорит, что фраза "page not found" не влазиет в поле "type". Зайдите в PHPMYADMIN и увеличьте поле `type` с varchar(16) до varchar(255) - ЭТА ошибка должна исчезнуть

Аватар пользователя anser anser 31 марта 2008 в 18:51

Не "page not found", а другая: "Фундаментальное образование в Москве для школьников России". Лазить в настройках MySQL я не решился, просто поставил другую версию БД.

Аватар пользователя anser anser 31 марта 2008 в 18:42

Я удалил MySQL 5.0.18 и поставил вместо нее 4.1.22. Кажется, для Drupal 6 она подходит. Старую database удалил, вместо нее залил бэкап, предусмотрительно сделанный перед вчерашним обновлением. Конечно же, попробовал добавить по-новому злополучную страничку. Все добавилось отлично, ошибок не было.

Заметил еще, что на MySQL 4.1.22 в Title можно засунуть в 2-2.5 раза больше знаков, чем в 4.0.18, прежде чем текст обрежется (!). Вот так - один и тот же Апач и PHP и 3 разные версии MySQL. В трех случаях получается РАЗНОЕ поведение системы.

Мой совет: не гонитесь за новыми технологиями. Лучше отработанное старое, чем глючное новое... Не во всех случаях, конечно.

Аватар пользователя anser anser 31 марта 2008 в 19:01

Привык делать бэкап через mysqldump.exe, при восстановлении БД понадобилось в итоговый файл добавить команду SET NAMES utf8; БД нормально залилась.

Аватар пользователя direqtor direqtor 1 апреля 2008 в 13:23

Не представляю, как можно настроить на 1 апач 2 разные MySQL. Видно, придется ставить вместо 5-й MySQL 4-ю поновее.

Элементарно, Ансер! Пусть стоит 4.0. Запускаешь инсталяшку пятой с расширенными настройками. По дороге ставишь ее в другую папку. На вопрос об имени службы обзываешь другим словом. На запрос номера порта указываешь 3307 или что-нить другое (не 3306).
Все.! Только подключаясь в скриптах не забудь правильный номер порта указывать. localhost:3306 - ты коннектишься к четверке, localhost:3307 - к пятерке.

Заметил еще, что на MySQL 4.1.22 в Title можно засунуть в 2-2.5 раза больше знаков, чем в 4.0.18, прежде чем текст обрежется (!). Вот так - один и тот же Апач и PHP и 3 разные версии MySQL. В трех случаях получается РАЗНОЕ поведение системы.

Тут диагноз ясен. Там где знаков больше у тебя база хранит символы в виндовой кодировке. Там где меньше в UTF.

Аватар пользователя anser anser 1 апреля 2008 в 14:58

Спасибо всем. Настраивать не буду, но буду иметь в виду. А если 2 сервера MySQL, в php.ini разве ничего менять не надо?

Аватар пользователя direqtor direqtor 3 апреля 2008 в 4:02

ЕМНИП, в пятерке он лежит уже не в виндовой папке, а в папке приложения. Но вообще-то, надо просто провести пару экспериментов. Поменяй, что-нить в файле, и посмотри какой сервер на какой файл реагирует.