SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.11.2007 01:16:22

voltex
Участник
Зарегистрирован: 03.11.2007
Сообщений: 3

Ошибка MySQL 1062

Здравствуйте! Помогите, пожалуйста решить следующую проблему!
У нашей школы есть свой сайт 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 г. Рыбинска.

Неактивен

 

#2 03.11.2007 01:23:44

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Ошибка MySQL 1062

Здравствуйте!

Проблема, разумеется, не в провайдере.
Ошибка на русский язык переводится как "попытка вставить в таблицу запись такую же,
как там уже есть" при запрете вставления повторных записей.

Проблема, видимо, в движке сайта.

Судя по виду данных, это IP-адреса, с которых Вы соединяетесь с сайтом или с какой-то
определенной его частью. Думаю, что если Вас особо не интересует информация в этой таблице,
можно убрать с нее ограничение уникальности, и ошибки пропадут.

Хотя, конечно, это не решение проблемы, а просто способ не выводить ошибки.

Неактивен

 

#3 03.11.2007 01:25:53

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Ошибка MySQL 1062

Здравствтуйте! По всей видимости это особенности работы движка сайта. Согласно Вашему описанию происходит следующее - не находя ip-адрес в таблице, он производит вставку. В результате получается дублированное значение уникального ключа. Пожалуйста пришлите структуру таблицы dle_user (команда SHOW CREATE TABLE dle_user или найти в дампе базы CREATE TABLE dle_user ....).

Ошибка возникает у тех, у кого расшифровывается локальный и глобальный ip. Скорее всего ip-адрес не влезает в поле в таблице или ключ определен не на все поле. Попробуйте увеличить размер поля: ALTER TABLE  dle_user MODIFY users_ip char(40);

Неактивен

 

#4 04.11.2007 09:44:52

voltex
Участник
Зарегистрирован: 03.11.2007
Сообщений: 3

Re: Ошибка MySQL 1062

Поскольку я не силён в базах 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 я не нашёл. Помогли ли эти действия в решении проблемы я смогу узнать скорее всего только во вторник, когда свяжусь с теми, у кого эта ошибка возникала. Спасибо за помощь!

Неактивен

 

#5 04.11.2007 10:02:31

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Ошибка MySQL 1062

ALTER TABLE - это команда на изменение структуры, поэтому в конечной структуре ее нет. Как я понимаю, у Вас произошло увеличение размера поля users_ip, что, надеюсь, поможет. Чтобы протестировать ошибку - пусть те, у кого она возникает, с разных компьютеров заходят на сайт несколько раз. Если возникнут какие-то проблемы, пишите

Неактивен

 

#6 11.11.2007 22:31:16

voltex
Участник
Зарегистрирован: 03.11.2007
Сообщений: 3

Re: Ошибка MySQL 1062

Большое спасибо за помощь! После внесённых изменений сайт открывается из всех вышеперечисленных точек! Кстати, до изменений размер поля users_ip был равен 20.

Неактивен

 

#7 11.11.2007 22:57:57

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Ошибка MySQL 1062

Очень хорошо!

20 символов достаточно, чтобы хранить один IP (максимальный размер - 15 байт для 255.255.255.255). Так рассуждали при проектировании таблиц. Однако при написании программы решили для тех, кто выходит в интернет через прокси или маршрутеризатор, записывать все IP-адреса - внешний и локальные через запятую, как видно из строки, которая вставляется в таблицу '10.6.0.17, 193.233.51.115, 193.233.48.78' - а это уже не помещается (надо по крайней мере в три раза больше места), соответственно бага проявлялась только у тех, кто выходит в интернет через прокси (того или иного типа). Сейчас Вы увеличили  поле до 80 символов, что на вскидку должно работать (по крайней мере 3 ip адреса поместятся, и это лучшее, что можно сделать не разбираясь в коде движка сайта)

Неактивен

 

#8 07.11.2013 15:08:07

Djohny
Участник
Зарегистрирован: 07.11.2013
Сообщений: 2

Re: Ошибка MySQL 1062

Здравствуйте! Вот пришлось сделалать впервые сайт на  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'

Неактивен

 

#9 07.11.2013 17:14:19

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Ошибка MySQL 1062

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

Каким образом вы делали дамп?
Есть ли в нем строка вида
DROP TABLE IF EXISTS `s6j9v_assets` ?

Неактивен

 

#10 07.11.2013 19:28:32

Djohny
Участник
Зарегистрирован: 07.11.2013
Сообщений: 2

Re: Ошибка MySQL 1062

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.

Поковырявшись в нотепаде с базой, после редактирования, все стало как положено!

Спасибо за отзывчивость и совет! Удачи Вам! wink

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson