Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пресловутая ошибка errno: 150 / 25 сообщений из 34, страница 1 из 2
24.12.2008, 12:27:57
    #35731987
Alex__1981
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Всем привет.

Переношу дам базы с одной машины на другую и получаю следующую ошибку:

Код: plaintext
1.
2.
3.
[root@new]# mysql --default-character-set=cp1251 -u root -p mw <./full-mysql-backup.sql                                           
Enter password:
ERROR 1005 (HY000) at line 12: Can't create table './mw/account.frm' (errno: 150)                                          


базу mw на новой машине создавал через phpMyAdmin сравнение указал cp1251, в чем может быть проблема. По форуму искал, но там немного не то.
...
Рейтинг: 0 / 0
24.12.2008, 12:48:52
    #35732039
Alex__1981
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Alex__1981,

Как-то может быть это связано с ключевыми полями в таблицах?
...
Рейтинг: 0 / 0
24.12.2008, 13:36:21
    #35732196
Alex__1981
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Alex__1981,

Выяснил, что проблема связана с внешними ключами в таблицах

DROP TABLE IF EXISTS account;
CREATE TABLE account (
ID int(11) NOT NULL auto_increment,
Name varchar(100) default '',
PartyID int(11) NOT NULL default '0',
Amount float NOT NULL default '0',
AccountLimit float NOT NULL default '0',
AccountNumber varchar(30) default NULL,
PinCode int(11) default '1111',
Locked int(11) NOT NULL default '0',
AccountingStartDay int(2) default '1',
Number varchar(30) default NULL,
CurrencyID int(11) NOT NULL default '1',
PRIMARY KEY (ID),
KEY XIF1022Account (PartyID),
KEY XIF1129Account (CurrencyID),
CONSTRAINT `account_ibfk_1` FOREIGN KEY (`PartyID`) REFERENCES `party` (`ID`)
CONSTRAINT `account_ibfk_2` FOREIGN KEY (`CurrencyID`) REFERENCES `currency` (`ID`)
) TYPE=InnoDB;

но что в таком случае делать?
...
Рейтинг: 0 / 0
24.12.2008, 17:47:43
    #35733223
Nick Anikin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Alex__1981По форуму искал, но там немного не то.что не то? топиков, посвященных errno 150 штук 20, если ни один не подошел, тогда перечисляйте, что пробовали
...
Рейтинг: 0 / 0
13.02.2009, 20:42:57
    #35817102
Alexey Furmanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Nick AnikinAlex__1981По форуму искал, но там немного не то.что не то? топиков, посвященных errno 150 штук 20, если ни один не подошел, тогда перечисляйте, что пробовали
из 17 найденных наверное в 16ти написано - "попробуйте поискать", рыдал
...
Рейтинг: 0 / 0
13.02.2009, 21:59:17
    #35817172
RXL
RXL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Alexey Furmanov,

Поройся в этой теме:
http://forums.mysql.com/read.php?22,19755,19755
...
Рейтинг: 0 / 0
02.05.2009, 19:06:31
    #35965323
Артем_84
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Alex__1981CONSTRAINT `account_ibfk_1` FOREIGN KEY (`PartyID`) REFERENCES `party` (`ID`)
CONSTRAINT `account_ibfk_2` FOREIGN KEY (`CurrencyID`) REFERENCES `currency` (`ID`)
Типы, размер полей PartyID и ID должны быть одинаковыми

тоже и с CurrencyID
...
Рейтинг: 0 / 0
18.05.2009, 20:00:16
    #35992690
сдающийБД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Артем_84Alex__1981CONSTRAINT `account_ibfk_1` FOREIGN KEY (`PartyID`) REFERENCES `party` (`ID`)
CONSTRAINT `account_ibfk_2` FOREIGN KEY (`CurrencyID`) REFERENCES `currency` (`ID`)
Типы, размер полей PartyID и ID должны быть одинаковыми

тоже и с CurrencyID


пасиб чувак! я идиот)))
...
Рейтинг: 0 / 0
19.09.2009, 18:53:19
    #36205788
Димитрий_Галин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
В моей ситуации было так - ссылка в ключе на таблицу с MYISAM - поменял на InnoDB - отработало
...
Рейтинг: 0 / 0
12.04.2010, 01:50:16
    #36573181
alz
alz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
сдающийБДАртем_84Alex__1981CONSTRAINT `account_ibfk_1` FOREIGN KEY (`PartyID`) REFERENCES `party` (`ID`)
CONSTRAINT `account_ibfk_2` FOREIGN KEY (`CurrencyID`) REFERENCES `currency` (`ID`)
Типы, размер полей PartyID и ID должны быть одинаковыми

тоже и с CurrencyID


пасиб чувак! я идиот)))
Пожалуйста, разъясните, что значит одинаковые типв и размеры полей? Если не трудно, покажите правильный запрос в вашем случае. Спасибо.
...
Рейтинг: 0 / 0
12.04.2010, 02:19:32
    #36573196
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
alz,

например
Код: plaintext
1.
INT( 11 ) UNSIGNED
INT( 10 ) UNSIGNED
или
Код: plaintext
1.
INT( 11 ) UNSIGNED
INT( 11 )
- это пары разных полей с точки зрения построения FK.
...
Рейтинг: 0 / 0
06.10.2010, 13:58:29
    #36884455
Пресловутая ошибка errno: 150
У меня Таже проблема вот только данные 100% совпадают
вот к примеру первичный ключ
x1Id BIGINT(18) NOT NULL AUTO_INCREMENT,

а вот поле для связи (внешний ключ)
x2x1Id BIGINT(18) NOT NULL,

Как видно типы данных одинаковы!!
Так в чем же может быть проблема???
...
Рейтинг: 0 / 0
06.10.2010, 14:00:49
    #36884466
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Филимонов СергейУ меня Таже проблемаОписывайте свою проблему полностью. В этом топике упоминалось несколько вариантов этой проблемы.
...
Рейтинг: 0 / 0
06.10.2010, 14:16:31
    #36884527
Пресловутая ошибка errno: 150
в общем вот более наглядный пример:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
DROP TABLE IF EXISTS XDB.x1;
CREATE TABLE XDB.x1 (
  x1Id BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  x1Name VARCHAR( 20 ) NOT NULL,
  PRIMARY KEY (x1Id)
)
TYPE=InnoDB
AUTO_INCREMENT= 1 ;
DROP TABLE IF EXISTS XDB.x2;
CREATE TABLE XDB.x2 (
  x2Id BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  x2x1Id BIGINT( 20 ) UNSIGNED NOT NULL,
  x2Name VARCHAR( 20 ) NOT NULL,
  PRIMARY KEY (x2Id), 
   CONSTRAINT FK_X1
              FOREIGN KEY (x2x1Id) REFERENCES x1(x1Id)
)
TYPE=InnoDB
AUTO_INCREMENT= 1 ;
Первая таблица создается без проблем а вот со второй проблемы вылетает ошибка
Can't create table '.\XDB\x2.frm' (errno: 150)

Что еще тут добавить в принципе незнаю.
В общем как можно решить эту проблему
Может это из-за версии MYSQL или еще чего?
...
Рейтинг: 0 / 0
06.10.2010, 14:20:30
    #36884537
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Филимонов Сергей,

при этом XDB точно является текущей базой?
...
Рейтинг: 0 / 0
06.10.2010, 14:27:36
    #36884561
Пресловутая ошибка errno: 150
Скорее всего да, хотя даже если нет то вот этот скрипт выдает ту же ошибку:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
DROP TABLE IF EXISTS XDB.x1;
CREATE TABLE XDB.x1 (
  x1Id BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  x1Name VARCHAR( 20 ) NOT NULL,
  PRIMARY KEY (x1Id)
)
TYPE=InnoDB
AUTO_INCREMENT= 1 ;
DROP TABLE IF EXISTS XDB.x2;
CREATE TABLE XDB.x2 (
  x2Id BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  x2x1Id BIGINT( 20 ) UNSIGNED NOT NULL,
  x2Name VARCHAR( 20 ) NOT NULL,
  PRIMARY KEY (x2Id), 
   CONSTRAINT FK_X1
              FOREIGN KEY (x2x1Id) REFERENCES XDB.x1(x1Id)
)
TYPE=InnoDB
AUTO_INCREMENT= 1 ;
Модератор: Пожалуйста, используйте теги для оформления своих постов. Этим вы повысите шансы на получение ответа.
...
Рейтинг: 0 / 0
06.10.2010, 15:25:04
    #36884744
artas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Филимонов Сергей,

Код: plaintext
1.
2.
3.
4.
5.
6.
SET FOREIGN_KEY_CHECKS =  0 ;
 
ваши запросы
 
SET FOREIGN_KEY_CHECKS =  1 ;

...
Рейтинг: 0 / 0
06.10.2010, 18:09:00
    #36885338
Пресловутая ошибка errno: 150
Попробовал так (если я правельно понял)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
SET FOREIGN_KEY_CHECKS =  0 ;
 
DROP TABLE IF EXISTS XDB.x1;
CREATE TABLE XDB.x1 (
  x1Id BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  x1Name VARCHAR( 20 ) NOT NULL,
  PRIMARY KEY (x1Id)
)
TYPE=InnoDB
AUTO_INCREMENT= 1 ;
DROP TABLE IF EXISTS XDB.x2;
CREATE TABLE XDB.x2 (
  x2Id BIGINT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT,
  x2x1Id BIGINT( 20 ) UNSIGNED NOT NULL,
  x2Name VARCHAR( 20 ) NOT NULL,
  PRIMARY KEY (x2Id), 
   CONSTRAINT FK_X1
              FOREIGN KEY (x2x1Id) REFERENCES XDB.x1(x1Id)
)
TYPE=InnoDB
AUTO_INCREMENT= 1 ;
 
SET FOREIGN_KEY_CHECKS =  1 ;


Результат все тот же
Can't create table '.\XDB\x2.frm' (errno: 150)
...
Рейтинг: 0 / 0
07.10.2010, 07:32:06
    #36886064
Пресловутая ошибка errno: 150
Всем спасибо за то что помогли или не помогли в общем НЕ ВАЖНО! А важно то что я нашел решение своей проблемы. Собака была зарыта в версии MYSQL (у меня видимо немного староватая версия но точно незнаю какая). В общем в моей версии прежде чем создавать внешний ключ необходимо было создать индекс к полю для внешнего ключа. Вот и все!
...
Рейтинг: 0 / 0
07.10.2010, 09:34:25
    #36886180
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Филимонов СергейСобака была зарыта в версии MYSQL (у меня видимо немного староватая версия но точно незнаю какая).Неужели ниже, чем 4.1.2?
...
Рейтинг: 0 / 0
07.10.2010, 10:01:06
    #36886235
Пресловутая ошибка errno: 150
да у меня Windows версия 4.0.26-nt-max
мне в принципе больше важена легкость сервера бд.
Данная версия в архивированном виде занимает около 2-3 мегабайт легко устанавливается и настраивается(спокойно устанавливало эту версию тысячи чайников в месте с одной программкой). Единственная и большая проблема это стабильность т.е. если к примеру вырубят свет у пользователя сервер просто напросто вылетает :(. Но это уже другая история :).
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
09.02.2012, 11:48:37
    #37653340
Пресловутая ошибка errno: 150
Подобная проблема так же возникает, когда пытаешься поставить foreign key на само поле, например так:

ALTER TABLE `tb` ADD FOREIGN KEY ( `id` ) REFERENCES
`db`.`tb` ( `id` ) ON DELETE NO ACTION ON UPDATE NO ACTION;
...
Рейтинг: 0 / 0
09.02.2012, 12:12:01
    #37653393
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Дмитрий неизвестныйПодобная проблема так же возникает, когда пытаешься поставить foreign key на само поле, например так:

ALTER TABLE `tb` ADD FOREIGN KEY ( `id` ) REFERENCES
`db`.`tb` ( `id` ) ON DELETE NO ACTION ON UPDATE NO ACTION;Логично, поле не может ссылатьсясамо на себя. Да и смысла в этом нет.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.10.2013, 10:32:16
    #38417973
Mr.Sinister
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Для этой ошибки может быть несколько причин.
Не считая причину про тип полей:
1. колонка на которую ссылаются (после References она же родительская) не индексирована;
2. не совпадает кодировка (collation) при соединении текстовых полей;
3. при установке дочернего поля в NULL имеющего свойство NOT NULL, при удалении родительской записи;
4. не совпадают кодировки таблиц;
5. поле отсутствует в родительской таблице.
...
Рейтинг: 0 / 0
01.08.2014, 07:40:05
    #38710492
Леха234
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пресловутая ошибка errno: 150
Атрибут "UNSIGNED" у поля у меня не совпадал!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Пресловутая ошибка errno: 150 / 25 сообщений из 34, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]