Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте! Помогите, пожалуйста решить следующую проблему!
У нашей школы есть свой сайт www.school27.ru , который вроде бы нормально функционирует. Но ко мне стали поступать тревожные сообщения, что сайт не работает! На данный момент мне известны по крайней мере 3 точки, с которых вход именно на наш сайт невозможен (в любой момент времени). Ошибка везде одна и та же:
MySQL Error!
------------------------
The Error returned was:
Duplicate entry '10.6.0.17, 193.' for key 1
Error Number:
1062
INSERT INTO dle_user (users_ip, users_country, users_today_count, users_all_count) VALUES ('10.6.0.17, 193.233.51.115, 193.233.48.78','ru','1','1')
Отличаются только IP адреса. Самое интересное, что с других точек подключения к Интернет такой (и вообще никакой) ошибки нет! Я, честно говоря, не знаю, на кого грешить: на хостинг nic.ru (они утверждают, что всё работает, и советуют обратиться к провайдеру или к специалисту по базам данных), на провайдера (одна из неработающих точек подключена через Центртелеком, но там у них тоже всё работает) или на движок, на основе которого создан сайт DataLife.
Судя по описанию на экране, ошибка таится где-то в базе MySQL, но почему тогда она проявляется только с определённых точек?
От настроек операционной системы здесь тоже врядли что-то зависит, т.к. подключаясь к Интернет разными способами на одном и том же компьютере (через спутникового провайдера - с ошибкой и через мобилку без ошибки), я получал разный результат. Можно погрешить на провайдера, но почему тогда все остальные сайты открываются без проблем?
Можно было бы не обращать внимание на какие-то 3 точки, но одна из них - это наш Информационно-образовательный центр (г. Рыбинск), где не могут посмотреть и оценить наш сайт, а затем громогласно перед всеми директорами заявляют, что сайт школы 27 не работает.
Заранее благодарен за ответ!!! С уважением, Владимир Грищенко, зам. директора по новым информационным технологиям школы 27 г. Рыбинска.
Неактивен
Здравствуйте!
Проблема, разумеется, не в провайдере.
Ошибка на русский язык переводится как "попытка вставить в таблицу запись такую же,
как там уже есть" при запрете вставления повторных записей.
Проблема, видимо, в движке сайта.
Судя по виду данных, это IP-адреса, с которых Вы соединяетесь с сайтом или с какой-то
определенной его частью. Думаю, что если Вас особо не интересует информация в этой таблице,
можно убрать с нее ограничение уникальности, и ошибки пропадут.
Хотя, конечно, это не решение проблемы, а просто способ не выводить ошибки.
Неактивен
Здравствтуйте! По всей видимости это особенности работы движка сайта. Согласно Вашему описанию происходит следующее - не находя ip-адрес в таблице, он производит вставку. В результате получается дублированное значение уникального ключа. Пожалуйста пришлите структуру таблицы dle_user (команда SHOW CREATE TABLE dle_user или найти в дампе базы CREATE TABLE dle_user ....).
Ошибка возникает у тех, у кого расшифровывается локальный и глобальный ip. Скорее всего ip-адрес не влезает в поле в таблице или ключ определен не на все поле. Попробуйте увеличить размер поля: ALTER TABLE dle_user MODIFY users_ip char(40);
Неактивен
Поскольку я не силён в базах MySQL, я попросил сделать изменения более продвинутого человека в этом вопросе. После изменений структура таблицы dle_user выглядит следующим образом:
Поле Тип Сравнение Атрибуты Ноль По умолчанию Дополнительно Действие
users_ip varchar(80) cp1251_general_ci Нет
users_country varchar(5) cp1251_general_ci Да
users_today_count int(20) Да 0
users_all_count int(20) Да 0
Отметить все / Снять отметку со всех С отмеченными:
--------------------------------------------------------------------------------
Версия для печати Предлагаемая структура таблицы
Добавить поле(я)В конец таблицы В начало таблицы После users_ip users_country users_today_count users_all_count
--------------------------------------------------------------------------------
Индексы: Имя ключа Тип Количество элементов Действие Поле
PRIMARY PRIMARY 1540 users_ip
Создать индекс на колонках
Используемое пространство Тип Использование
Данные 48,040 Байт
Индекс 29,696 Байт
Всего 77,736 Байт
Статистика ряда Выражения Значение
Формат динамический
Сравнение cp1251_general_ci
Ряды 1,540
Длина ряда ø 31
Размер ряда ø 50 Байт
Создание Ноя 03 2007 г., 15:58
Последнее обновление Ноя 04 2007 г., 09:09
Изменения производились удалённо, я не видел, как это делалось, но поля ALTER TABLE я не нашёл. Помогли ли эти действия в решении проблемы я смогу узнать скорее всего только во вторник, когда свяжусь с теми, у кого эта ошибка возникала. Спасибо за помощь!
Неактивен
ALTER TABLE - это команда на изменение структуры, поэтому в конечной структуре ее нет. Как я понимаю, у Вас произошло увеличение размера поля users_ip, что, надеюсь, поможет. Чтобы протестировать ошибку - пусть те, у кого она возникает, с разных компьютеров заходят на сайт несколько раз. Если возникнут какие-то проблемы, пишите
Неактивен
Большое спасибо за помощь! После внесённых изменений сайт открывается из всех вышеперечисленных точек! Кстати, до изменений размер поля users_ip был равен 20.
Неактивен
Очень хорошо!
20 символов достаточно, чтобы хранить один IP (максимальный размер - 15 байт для 255.255.255.255). Так рассуждали при проектировании таблиц. Однако при написании программы решили для тех, кто выходит в интернет через прокси или маршрутеризатор, записывать все IP-адреса - внешний и локальные через запятую, как видно из строки, которая вставляется в таблицу '10.6.0.17, 193.233.51.115, 193.233.48.78' - а это уже не помещается (надо по крайней мере в три раза больше места), соответственно бага проявлялась только у тех, кто выходит в интернет через прокси (того или иного типа). Сейчас Вы увеличили поле до 80 символов, что на вскидку должно работать (по крайней мере 3 ip адреса поместятся, и это лучшее, что можно сделать не разбираясь в коде движка сайта)
Неактивен
Здравствуйте! Вот пришлось сделалать впервые сайт на CMS Joomla 3. Все сделал, залил файлы на хостинг, но когда пришло время импортировать базу данных тут то и начались проблемы! Я еще только только начал вникать, что да как, а тут такие проблемы. Подскажите пожалуйста что нужно сделать что бы база удачно импортировалась?? На данный момент такие вот ошибки:
Ошибка
SQL-запрос:
-- -- Дамп данных таблицы `s6j9v_assets` -- INSERT INTO `s6j9v_assets` (`id`, `parent_id`, `lft`, `rgt`, `level`, `name`, `title`, `rules`) VALUES (1, 0, 0, 123, 0, 'root.1', 'Root Asset', '{"core.login.site":{"6":1,"2":1},"core.login.admin":{"6":1},"core.login.offline":{"6":1},"core.admin":{"8":1},"core.manage":{"7":1},"core.create":{"6":1,"3":1},"core.delete":{"6":1},"core.edit":{"6":1,"4":1},"core.edit.state":{"6":1,"5":1},"core.edit.own":{"6":1,"3":1}}'), (2, 1, 1, 2, 1, 'com_admin', 'com_admin', '{}'), (3, 1, 3, 6, 1, 'com_banners', 'com_banners', '{"core.admin":{"7":1},"core.manage":{"6":1},"core.create":[],"core.delete":[],"core.edit":[],"core.edit.state":[]}'), (4, 1, 7, 8, 1, 'com_cache', 'com_cache', '{"core.admin":{"7":1},"core.manage":{"7":1}}'), (5, 1, 9, 10, 1, 'com_checkin', 'com_checkin', '{"core.admin":{"7":1},"core.manage":{"7":1}}'), (6, 1, 11, 12, 1, 'com_config', 'com_config', '{}'), (7, 1, 13, 16, 1, 'com_contact', 'com_contact', '{"core.admin"[...]
Ответ MySQL: Документация
#1062 - Duplicate entry '1' for key 'PRIMARY'
Неактивен
Подозреваю, что у вас уже есть данные в таблицах на хостинге, поэтому при импорте возникает ошибка.
Каким образом вы делали дамп?
Есть ли в нем строка вида
DROP TABLE IF EXISTS `s6j9v_assets` ?
Неактивен
vasya написал:
Подозреваю, что у вас уже есть данные в таблицах на хостинге, поэтому при импорте возникает ошибка.
Каким образом вы делали дамп?
Есть ли в нем строка вида
DROP TABLE IF EXISTS `s6j9v_assets` ?
Спасибо большое за помощь! Я справился! Когда делал дамп базы поставил галочку: Добавить выражение DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT,
но при иморте возникла уже другая ошибка: Ответ MySQL: Документация
#1217 - Cannot delete or update a parent row: a foreign key constraint fails.
Поковырявшись в нотепаде с базой, после редактирования, все стало как положено!
Спасибо за отзывчивость и совет! Удачи Вам!
Неактивен