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

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

Код: 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
Пресловутая ошибка errno: 150
    #35732039
Alex__1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex__1981,

Как-то может быть это связано с ключевыми полями в таблицах?
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #35732196
Alex__1981
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Пресловутая ошибка errno: 150
    #35733223
Фотография Nick Anikin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex__1981По форуму искал, но там немного не то.что не то? топиков, посвященных errno 150 штук 20, если ни один не подошел, тогда перечисляйте, что пробовали
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #35817102
Alexey Furmanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nick AnikinAlex__1981По форуму искал, но там немного не то.что не то? топиков, посвященных errno 150 штук 20, если ни один не подошел, тогда перечисляйте, что пробовали
из 17 найденных наверное в 16ти написано - "попробуйте поискать", рыдал
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #35817172
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Furmanov,

Поройся в этой теме:
http://forums.mysql.com/read.php?22,19755,19755
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #35965323
Артем_84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Пресловутая ошибка errno: 150
    #35992690
сдающийБД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Артем_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
Пресловутая ошибка errno: 150
    #36205788
Димитрий_Галин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моей ситуации было так - ссылка в ключе на таблицу с MYISAM - поменял на InnoDB - отработало
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #36573181
alz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
alz
Гость
сдающийБДАртем_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
Пресловутая ошибка errno: 150
    #36573196
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alz,

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

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

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

Код: 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
Пресловутая ошибка errno: 150
    #36884537
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филимонов Сергей,

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

Код: 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
Пресловутая ошибка errno: 150
    #36884744
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филимонов Сергей,

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

...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #36885338
Попробовал так (если я правельно понял)
Код: 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
Пресловутая ошибка errno: 150
    #36886064
Всем спасибо за то что помогли или не помогли в общем НЕ ВАЖНО! А важно то что я нашел решение своей проблемы. Собака была зарыта в версии MYSQL (у меня видимо немного староватая версия но точно незнаю какая). В общем в моей версии прежде чем создавать внешний ключ необходимо было создать индекс к полю для внешнего ключа. Вот и все!
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #36886180
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филимонов СергейСобака была зарыта в версии MYSQL (у меня видимо немного староватая версия но точно незнаю какая).Неужели ниже, чем 4.1.2?
...
Рейтинг: 0 / 0
Пресловутая ошибка errno: 150
    #36886235
да у меня Windows версия 4.0.26-nt-max
мне в принципе больше важена легкость сервера бд.
Данная версия в архивированном виде занимает около 2-3 мегабайт легко устанавливается и настраивается(спокойно устанавливало эту версию тысячи чайников в месте с одной программкой). Единственная и большая проблема это стабильность т.е. если к примеру вырубят свет у пользователя сервер просто напросто вылетает :(. Но это уже другая история :).
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Пресловутая ошибка errno: 150
    #37653340
Подобная проблема так же возникает, когда пытаешься поставить foreign key на само поле, например так:

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

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


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