Ошибка выполнения: mysqlfabric sharding add_table 1 employee.employees emp_no

Когда я выполняю следующую команду для создания шарда:

 mysqlfabric sharding add_table 1 employees.employees emp_no

Я получаю следующее error:

DatabaseError: Команде (INSERT INTO shard_tables(shard_mapping_id, table_name, column_name) VALUES(%s, %s, %s), ('1', 'employee.employees', 'emp_no')) не удалось получить доступ (localhost:3306). 1452 (23000): невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполнено (fabric,shard_tables, ОГРАНИЧЕНИЕ fk_shard_mapping_id ИНОСТРАННЫЙ КЛЮЧ (shard_mapping_id) РЕКОМЕНДАЦИИ shard_maps (shard_mapping_id)).

Я также пытался использовать SET FOREIGN_KEY_CHECKS = 0; но это не решает проблему.

Я использую MySQL Fabric

My Fabric.cfg

[DEFAULT]
prefix =
sysconfdir = /etc
logdir = /var/log

[statistics]
prune_time = 3600

[logging]
url = file:///var/log/fabric.log
level = INFO

[storage]
database = fabric
user = fabric
address = 192.168.1.96:3306
connection_delay = 1
connection_timeout = 6
password =
connection_attempts = 6

[connector]
ttl = 1

[protocol.xmlrpc]
threads = 5
address = 192.168.1.96:32274




[servers]
restore_user = fabric
unreachable_timeout = 5
backup_password =
backup_user = fabric
user = fabric
restore_password =
password =


[executor]
executors = 5

[sharding]
mysqldump_program = /home/mysql/mysql/bin/mysqldump
mysqlclient_program = /home/mysql/mysql/bin/mysql

[protocol.mysql]
disable_authentication = no
ssl_cert =
ssl_key =
ssl_ca =
user = admin
address = localhost:32275
password =

1 ответ

О, я решил это. В следующей команде:

mysqlfabric sharding add_table 1 employees.employees emp_no

Я использовал "1", который показывает MAPPING SHARD ID в таблице fabric.shard_maps и там нет, поэтому я выбрал один из идентификаторов отображения, присутствующих там для my_shard.

Благодарю вас!!

Другие вопросы по тегам