Ошибка выполнения: 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.
Благодарю вас!!