Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Странное поведение сервера
 
 автор: Bombino   (16.06.2009 в 06:19)   письмо автору
49.6 Кб
 
 

Уважаемые знатоки. Есть такая проблема, не знаю относится это к MySQL или к ОС. Суть в следующем: есть рабочая база созданная на версии 5.0.4. Решили перенести её на отдельную выделенную машину (WinXP SP2), установили сервер 5.0.67, прописали пользователя для работы с базой и... см. вложение. (синий фон - root, зелёный - fd)
Ошибок в написании нет!
Что может быть? Установка на другую машину (WinXP SP3) server MySQL 5.0.67 всё работает нормально, а на выделенном (WinXP SP2) не работает.

  Ответить  
 
 автор: nek-v   (16.06.2009 в 09:12)   письмо автору
 
   для: Bombino   (16.06.2009 в 06:19)
 

вероятно оттого что кавычками имена таб и полей надо бы окружить?

  Ответить  
 
 автор: Bombino   (16.06.2009 в 09:29)   письмо автору
 
   для: nek-v   (16.06.2009 в 09:12)
 

Пробовал и кавычки и апострофы. Не работает! Правда ошибка другая - неверный синтаксис.

mysql> select * from "wbo_users";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
 for the right syntax to use near '"wbo_users"' at line 1
mysql>

mysql> select * from wbo_users;
ERROR 1146 (42S02): Table 'f*******a.wbo_users' doesn't exist
mysql>


на WinXP SP3


mysql> select * from wbo_users;
+-----------+-----------+------------+------
| ID        | USER_NAME | USER_PASS  | ID_PE
+-----------+-----------+------------+------
| 210000001 | admin     | ********** | 21000
+-----------+-----------+------------+------
1 row in set (0.13 sec)

mysql>

  Ответить  
 
 автор: Trianon   (16.06.2009 в 10:54)   письмо автору
 
   для: Bombino   (16.06.2009 в 09:29)
 

Имена полей и таблиц заключаются в `обратные косые кавычки`
Иначе действительно будет ошибка синтаксиса.

Но у Вас проблема не в них, а в том, вероятно, что некоторые символы в имени не латинские.
по JPG этого не разобрать. Лучше бы Вы скопировали отчет текстом.

  Ответить  
 
 автор: Bombino   (16.06.2009 в 11:05)   письмо автору
 
   для: Trianon   (16.06.2009 в 10:54)
 

1. Следует учесть, что диалог ведётся из КОМАНДНОЙ СТРОКИ. Попытка ввести кавычки и апострофы - вызывают синтаксическую ошибку. Обратные косые кавычки - ОШИБКА "таблица не найдена"
2. Я уже писал, что ни в базе ни в написании команд в КОМАНДНОЙ СТРОКЕ ошибок нет (см. ответ сервера на WinXP SP3.

Самое что не понятно, одна и та-же база на одном компьютере работает, а на другом нет. MySQL выдает список баз и список таблиц в базах, а содержимое таблиц - нет.

  Ответить  
 
 автор: Trianon   (16.06.2009 в 11:31)   письмо автору
 
   для: Bombino   (16.06.2009 в 11:05)
 

запрос show tables на проблемной машине что показывает?
Только покажите отчет в виде текста, скопировав его сюда, а не в виде картинки.

А апострофы и кавычки там применяться не должны. Здесь Вам всё верно сообщают.

  Ответить  
 
 автор: Bombino   (16.06.2009 в 11:45)   письмо автору
 
   для: Trianon   (16.06.2009 в 11:31)
 

Вход от клиента базы fd.

mysql> use f*******a;
Database changed
mysql> show tables;
+------------------------------+
| Tables_in_f*******a          |
+------------------------------+
| acc_plan                     |
| agent                        |
| an_type                      |
| aphorism                     |
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| wbo_roles_script             |
| wbo_ur                       |
| wbo_users                    |
| wbo_usersettings             |
| wbt_absent                   |
| wbt_io                       |
| zakaz                        |
| zakaz_ex                     |
| zakaz_op                     |
+------------------------------+
116 rows in set (0.23 sec)

mysql>

кстати при входе от root - результат тот-же.

  Ответить  
 
 автор: Trianon   (16.06.2009 в 12:00)   письмо автору
 
   для: Bombino   (16.06.2009 в 11:45)
 

Могу лишь предположить, что проблемная машина - линуксовая, и прренос БД выполнялся не через дамп, а прямым копированием каталогов.
В этой ситуации возможен вариант, что в именах таблиц отличается регистр букв, к которому файловая система *nix чувствительна, а winXP - нет..
Либо как вариант, на самих файлах не были корректно расставлены атрибуты владельца/прав доступа.

  Ответить  
 
 автор: Bombino   (16.06.2009 в 12:14)   письмо автору
 
   для: Trianon   (16.06.2009 в 12:00)
 

Все машины WinXP, только выделенная SP2 а остальные SP3. Есть у нас SQL-скрипт пустой базы. Вот с ней и работаем (пока, чтобы рабочие данные не потерять).
Так вот, Эта пустая база на SP3 - работает на ура, а на SP2 - ни в какую. Может какой софт мешает?
На SP2 стоят 1С 7.7 и 1С8.1. Кроме всего прочего SP2 работает как терминальный сервер.

  Ответить  
 
 автор: Trianon   (16.06.2009 в 12:18)   письмо автору
 
   для: Bombino   (16.06.2009 в 12:14)
 

наврядли...
Скорее всё ж таки файлы с даными и права доступа к ним.
А база InnoDB изи MyISAM?

При создании новой базы и таблиц в ней картина та же?

  Ответить  
 
 автор: Bombino   (17.06.2009 в 03:36)   письмо автору
 
   для: Trianon   (16.06.2009 в 12:18)
 

>А база InnoDB изи MyISAM?

А как это можно проверить?

  Ответить  
 
 автор: Trianon   (17.06.2009 в 20:19)   письмо автору
 
   для: Bombino   (17.06.2009 в 03:36)
 

запросом show create table ИмяТаблицы
ну и в настройках конфига mysql поглядеть умалчиваемое значение.

  Ответить  
 
 автор: Bombino   (18.06.2009 в 04:11)   письмо автору
 
   для: Trianon   (17.06.2009 в 20:19)
 

Из запроса я понял, что это InnoDB:
Ответ от машины SP3;

mysql> show create table wbo_users;
...
| wbo_users | CREATE TABLE `wbo_users` (
  `ID` int(11) NOT NULL default '0',
  `USER_NAME` varchar(50) NOT NULL default '',
  `USER_PASS` varchar(32) NOT NULL default '',
  `ID_PERSON` int(11) NOT NULL default '0',
  `disabled` tinyint(4) default '0',
  `dtime` datetime NOT NULL default '0000-00-00 00:00:00',
  `com_out` tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (`ID`),
  KEY `X_PERS_WBO_USERS` (`ID_PERSON`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

тем более, что он хранится на другом разделе диска.

А на выделенной машине (SP2):

mysql> use f*******a;
Database changed
mysql> show create table wbo_users;
ERROR 1146 (42S02): Table 'f*******a.wbo_users' doesn't exist
mysql>

т.е. наотрез отказывается работать с таблицами.
PS: Переустановка MySQL с полной деинсталляцией и чисткой реестра на наличие записей MySQL не помогает, пробовал уже 3 раза. Так-же пробовал устанавливать MySQL в другую папку (не по умолчанию). Результат тот-же.

  Ответить  
 
 автор: Trianon   (18.06.2009 в 08:41)   письмо автору
 
   для: Bombino   (18.06.2009 в 04:11)
 

Так а как Вы вообще после переустановки сервера на машине SP2 переносите на нее базу?
Простым пофайловым копированием с другой машины чтоли?
Так базы не переносятся. InnoDB во всяком случае так работать не будет всяко.

  Ответить  
 
 автор: Bombino   (18.06.2009 в 10:33)   письмо автору
 
   для: Trianon   (18.06.2009 в 08:41)
 

Тогда встречный вопрос: как перенести базу с одной машины на другую.
Я раньше вообще с MySQL-ем не работал, не было такого ПО, а сейчас потребность возникла, поэтому приходится обучаться по ходу. Да ещё чтобы рабочий процесс не нарушить, поэтому и работаю с копией.

  Ответить  
 
 автор: Trianon   (18.06.2009 в 15:27)   письмо автору
 
   для: Bombino   (18.06.2009 в 10:33)
 

нужно снять дамп (утилита mysqldump) с машины исходной и залить его на целевую (утилитой mysql)

http://softtime.ru/forum/srch.php?id_forum=3&name=mysqldump&numberthemes=30&srchwhere=2&id_forum=3&logic=1

  Ответить  
 
 автор: Bombino   (19.06.2009 в 05:18)   письмо автору
 
   для: Trianon   (18.06.2009 в 15:27)
 

Всё, вопрос решился. Действительно всё оказалось в правах доступа. Сделал следующее:
1. Создал пустую базу из под root
2. Создал клиента для работы с базой
3. Присвоил ALL привилегии пользователю на работу с базой.
4. Из под пользователя импортировал дамп.

Всё заработало. Спасибо за помощь.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования