当我执行以下命令来创建分片时:
mysqlfabric sharding add_table 1 employees.employees emp_no
我收到以下错误
:
DatabaseError: Command (INSERT INTO shard_tables(shard_mapping_id, table_name, column_name) VALUES(%s, %s, %s), ('1', 'employees.employees', 'emp_no')) failed accessing (localhost:3306). 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (
fabric
.shard_tables
, CONSTRAINTfk_shard_mapping_id
FOREIGN KEY (shard_mapping_id
) REFERENCESshard_maps
(shard_mapping_id
)).
我也尝试使用SET FOREIGN_KEY_CHECKS = 0;
但它不能解决问题。
我正在使用 MySQL Fabric
我的 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 =
最佳答案
哦,我解决了。在以下命令中:
mysqlfabric sharding add_table 1 employees.employees emp_no
我使用的“1”显示了fabric.shard_maps 表中的映射分片ID,但该表中不存在,因此我选择了my_shard 中存在的映射ID 之一。
谢谢!!
关于mysql - 执行 : mysqlfabric sharding add_table 1 employees. 员工 emp_no 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37495986/