Поиск

Поделиться с друзьями:

 

Кто сейчас на сайте

Сейчас 420 гостей онлайн

Мы платим за сообщения на форуме!

Уважаемые посетители сайта! Рады сообщить Вам о том, что на нашем форуме с 1 февраля 2011 года введена оплата за написание сообщений! 

Теперь, просто оставляя обычные комментарии на форуме Вы получаете настоящие деньги!

Каждое Ваше сообщение на форуме превращается в деньги: Монеты

Зарабатывайте на Пэйджранкере просто и с удовольствием! Вы оставляете сообщения - мы платим! Не правда ли просто?

Узнать подробнее...

Статистика сайта

Пользователи : 1
Статьи : 762
Просмотры материалов : 1386526

Авторизация



Подписка на новости

Введите ваш e-mail:

Голосования

Оцените Ваш совокупный среднемесячный доход в сети Интернет
 
Вопросы СУБД MySQL PDF Печать E-mail
Статьи - Устранение проблем
Автор: Administrator   
22.04.2010 14:51

У меня случилось так, что все новые статьи/пользователи/категории/… приобретают ID=0. С чего вдруг?

Все дело в наличии аттрибута auto_increment в таблице, отвечающей за хранение заданных объектов. Для пользователей это таблица #__users и ее поле id. В phpMyAdmin надо всего лишь выставить данный аттрибут для заданного поля (чаще всего оно называется id). При работе на высоких версиях MySQL может возникать ошибка вроде «Duplicate entry '0' for key XXX». Как выставить авто_инкремент для какого-то поля написано в этом FAQ’е, прочитайте его до конца. 

Я получаю ошибку «DB function failed with error number 1016 Can’t open file: 'XXXXXX.MYI'.»

Надо в phpMyAdmin или консоли MySQL выбрать базу где стоит джумла и выполнить запрос

REPAIR TABLE XXXXXX

В случае если ошибка не исчезла — обратитесь к хостинговой компании.

 

При установке/экспорте дампа происходит ошибка «You have an error in your SQL syntax near 'ENGINE=MyISAM DEFAULT CHARSET=latin1' at line XXX»

Эта ошибка означает, что вы ставите параною на старую версию MySQL или восстанавливаете дамп от более новой версии MySQL на более старую. Этого можно избежать двумя способами:

  • Правильно настроить параметры экспорта дампа (что-то про версии, там должен быть select-box со списком СУБД). Более точно это может быть переведено как совместимость (MYSQL40).
  • Руками в уже готовом дампе удалить все фразы вроде «DEFAULT CHARSET=latin1» и заменить «ENGINE=MyISAM» на «TYPE=MyISAM»

При переносе дампа возникает ошибка "You have an error in your SQL syntax ... use near 'DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1' at line XX"

Этот вопрос аналогичен предыдущему. Новый MySQL не понимает старых конструкций определяющих кодировки таблиц (в 4.1 и 4.0 кодировки задаются разными командами). Надо руками удалить все вхождения "DEFAULT CHARSET = cp1251" или выбирать правильный тип экспорта дампа.

Как создать автоинкремент (auto_increment) для некоторых полей посредством phpMyAdmin

Заходим в phpMyAdmin. Выбираем нашу базу и нашу таблицу. Видим список полей доступных в этой таблице. Слева галочкой выбираем нужное нам поле и внизу нажимаем на карандашик, то есть переходим к редактированию поля. В столбике «Дополнительно» выбираем опцию auto_increment и нажимаем кнопку Сохранить. Теперь у поля должен появиться флаг auto increment.

Хочу заметить, что это только для разовых операций, намного проще сделать правильные настройки при создании дампа.

У моего провайдера, нестандартный порт MySQL (не 3306 как обычно, а 666). Как мне установить Joomla

При указании хоста MySQL надо указать порт через двоеточие, например

localhost:1106

Может ли Joomla работать с СУБД отличными от MySQL

Нет. Поддержки других СУБД в ней нет. Это планируется в следующих версиях. Сложность внедрения mySQL в текущую версию обусловлена тем, что под J написано очень-очень-очень много всяких расширений, использующих враппер-класс database. Но этот класс не более чем обертка над функциями mysql_*, хотя и очень удобная. Ни о какой абстракции речи не идет. Везде и всюду используются чисто mysql-конструкции, которые легко не переносимы на другие диалекты. Так пошло со времен мамбы. В коде 1.5 никаких подвижек на данный момент нет. Хотя, собственно, никто и не обещал это именно в этой версии.

Возникает ошибка "Warning: mysql_query(): Unable to save result set in /xxx/includes/database.php on line 289"

Эта ошибка означает, что у вас испорчена одна из таблиц. Для ее устранения надо открыть phpMyAdmin и посмотреть список таблиц. Испорченная таблица будет выделена специальным сообщением (про нее что-то будет написано). Для примерной идентификации таблицы можно посмотреть какой компонент запущен, если это статья, то возможно это com_content или таблица com_categories. После определения таблицы стоит в окне исполнения SQL-запроса выполнить запрос "REPAIR TABLE имя_таблицы". Но помните, что операция восстановления может удалить данные, которые были испорчены и которые невозможно восстановить. Если есть бэкап (резервная копия) то лучше восстановить базу данных оттуда (но это в случае, если вы точно знаете, что таблица зависела от других таблиц), если же таблица ни от кого не зависела, то смысла восстанавливать базу целиком нет. О том, сколько строк было удалено вам будет сообщено в сообщении после исполнения данного запроса.

Как сделать дамп базы данных и что такое дамп

Дамп ("Dump", англ) - это слепок, образ базы данных на определенный момент времени записанный при помощи SQL-инструкций вставки/удаления данных. По сути это набор инструкций для СУБД как и куда она должна вставлять тот или иной текст. Задача создания дампа возникает при создании резервной копии сайта. Т.е. сайт на Joomla состоит из двух частей - базы данных и файлов написанных на php с программным кодом. И если вторые можно легко заархивировать на хостинге и скопировать домой, то резервную копию базы данных можно сделать в следующих программах-скриптах:

  • PhpMyAdmin - сейчас установлен практически на любом хостинге.
  • Sypex Dumper - скрипт для создания дампов, написанный русским программистом.
  • Staggered MySQL Dump Importer - создан для импорта больших объемов баз данных.

Очень важно обратить внимание на то, в какой кодировке делается дамп. Для Joomla RE (ветки 1.0.х) кодировкой, в которой она работает, является cp1251. Во-первых сам текстовый файл дампа должен быть в этой кодировке (заведите себе нормальный текстовый редактор, не пользуйтесь блокнотом, а используйте, например, Bred3, он умеет читать как минимум четыре кодировки), а во вторых в параметрах конструкции CREATE TABLE явно должна быть указана кодировка таблицы.

 Ошибка - mosmenu::store failed "Incorrect integer value: for column 'published' at row 1 SQL= ..."

Смотри следующий вопрос.

Ошибка - mosmenu::store failed "Out of range value adjusted for column 'id' at row 1 SQL=INSERT INTO ..."

Данная ошибка возникает вследствие того, что Joomla не правильно работает с MySQL высоких верий (например, 5.0 и далее). Для решения данной проблемы можно изменить версию MySQL (в случае если вы отлаживаете сайт дома) или обратиться к хостеру для того, что бы он настроил MySQL и она разрешала использовать старый синтаксис.

Ошибка - moscontent::store failed "Duplicate entry '0' for key i SQL=..."

У столбца id (скорее всего) какой-либо таблицы потерялся параметр auto_increment. Такое может произойти, например, при переносе дампа базы данных, когда вы невнимательно выставляете параметры импорта в файл. Решением проблемы является выставление параметра auto_increment для нужной таблицы. Имя таблицы можно увидеть в теле запроса. Начинается оно (по умолчанию) со строки jos_, например jos_users. О том как выставить данный атрибут написано чуть выше.

DB function failed with error number 145 Table xxx is marked as crashed and should be repaired SQL = ...

В phpMyAdmin выполните следующий SQL-запрос:

REPAIR TABLE xxx

В случае если ошибка не исчезла — обратитесь к хостинговой компании. Причиной же возникновения самой такой ситуации может быть все что угодно. Начиная от сбоя файловой системы или зависания MySQL. Joomla или попытка взлома тут совершенно ни при чем. Просто сбой.

Ошибка - mossession::store failed DB function failed with error number 1044 Access denied for user 'XXX'@'%' to database 'ZZZ'

Эта ошибка означате, что возможно при переносе сайта вы забыли указать правильный логин или пароль в файл конфигурации configuration.php для доступа Joomla к базе данных MySQL. Если переводить дословно - доступ запрещен. А запрещен он может быть либо потому что не правильно указан пользователь, либо неправильно указан пароль. Скорее всего проблему можно решить установив для пользователя новый пароль или создав нового пользователя БД и наделив его правами на доступ к вашей базе данных.


Обновлено 09.03.2011 12:20
 

Добавить комментарий

Уважаемый посетитель www.PageRanker.ru!
На любой вопрос, заданный Вами в комментариях к материалам сайта или на страницах форума, Вы получите ответ в течении 24 часов! Это живой сайт. Вы можете этим воспользоваться.
Перед добавлением комментариев рекомендуем Вам ознакомиться с общими правилами, регламентирующими обсуждение материалов сайта:
На сайте запрещено:
1. Оставлять в комментариях ссылки на ресурсы сети Интернет за исключением ссылок, ведущих на внутренние страницы www.PageRanker.ru и ссылок, ведущих на страницы,строго соответствующие тематике комментируемого материала.
2. Оскорблять других участников обсуждения.
3. Использовать нецензурную лексику в любых формах ее проявления, включая завуалированный мат.
4. Оставлять комментарии, не несущие никакой смысловой нагрузки (состоящие из одних смайликов, состоящие из нескольких несвязных или повторяющихся символов, таких как: ")))", "хз", "угу", "ууу", "ыыы", "хахаха" и им подобных.
5. Негативно отзываться о сайте в целом, об администрации www.PageRanker.ru и материалах, размещенных на сайте.


Защитный код
Обновить

PageRanker | Форум | Карта сайта
Новичку | Веб-мастеру | Оптимизация | Продвижение | Монетизация | Google | Яндекс | FTP и Хостинг | Устранение проблем
Продвижение сайтов | Поисковые системы | CMS Joomla 1.5.х | Горячие новости | Политика | Мир | Экономика | Общество | Происшествия | Спорт | Авто | Наука и техника | Культура
Lifestyle | Светская жизнь | Как бы новости | Фото | Видео | Читать онлайн | Фантастика | Детские книги | Юмор | Флейм | Работа форума и сайта
Никакие данные, представленные на www.pageranker.ru, не могут быть использованы без согласования с администрацией сайта. При публикации материалов ссылка на сайт www.pageranker.ru обязательна.
Любое копирование материалов без размещения открытой для индексации обратной ссылки, запрещено. Все права защищены.