mysqlpump параллелизм и ошибки с внешними ограничениями - PullRequest
0 голосов
/ 13 июня 2019

Я в настоящее время на MySQL 5.7.26, и я пытаюсь mysqlpump, чтобы получить дампы моей базы данных. Я успешно использовал mysqldump ранее.

Выполнение mysqlpump и передача его на ведомый экземпляр приводит к следующей ошибке:

ОШИБКА 1215 (HY000) в строке 139: невозможно добавить ограничение внешнего ключа

Я обнаружил, что если я отключу параллелизм, то эта конкретная проблема исчезнет, ​​но тогда я получу еще одну ошибку

ОШИБКА 1822 (HY000) в строке 141: не удалось добавить внешний ключ constaint. Отсутствует индекс для ограничения 'fb_profile_ibfk_1' в ссылочная таблица 'user'

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

Проблемой, безусловно, может быть моя схема. Но эта база данных существует уже некоторое время, и mysqldump работают нормально.

SQL для создания таблиц ниже. Первоначально таблица user имела fb_id, определенную как fb_id VARCHAR(20) UNIQUE KEY DEFAULT NULL, но в приведенной ниже версии было показано, имеет ли значение разрешение NULL в одной таблице и значение, отличное от NULL, в другой.

Также обратите внимание, что это вызывает ошибку 1822. Мне нужно найти сокращенный набор таблиц, который генерирует 1215.

CREATE TABLE IF NOT EXISTS user (
    user_id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    fb_id VARCHAR(20) NOT NULL UNIQUE KEY
) AUTO_INCREMENT=1001;

CREATE TABLE IF NOT EXISTS fb_profile(
    fb_id VARCHAR(20) NOT NULL PRIMARY KEY,
    CONSTRAINT FOREIGN KEY (fb_id) REFERENCES user(fb_id)
)

и база данных была создана с этим

CREATE DATABASE IF NOT EXISTS db 
    DEFAULT CHARACTER SET utf8mb4
    DEFAULT COLLATE utf8mb4_unicode_ci;

Известны ли проблемы с mysqlpump и внешними ключами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...