[Gluster-users] Mysql missed foreign keys using GlusterFS as DB location

Илья Сторчевой (Ярмарка Мастеров - www.livemaster.ru) i.storchevoy at livemaster.ru
Thu Dec 15 10:36:52 UTC 2016


Hello.
I have some LXC containers on two servers, each container placed in
personal glusterfs replication node. Gluster used as failover: when one
server is down i have possibility run container on second server without
loosing data.
In one of containers I have a Atlassian Confluence software, that using
mysql 5.6, and when I try to update my Confluence to last version I got the
error that updater failed to execute mysql query "alter table
CONTENTPROPERTIES add constraint FK984C5E4C8DD41734 foreign key (CONTENTID)
references CONTENT (CONTENTID)".
>From error log I see that the alter query fails because foreign key already
been in DB, but updater don't get information about this. I have a long
discussion with Atlassian support, and we found the solution: updater get
information from "show create table" and when updater can't get that
information they try to create new foreign key.
Using this information go to mysql console in Confluence container and
execute "show create table" for one of confluence DB table and have no
foreign_keys from result, but when I execute queries for look foreign_keys
in information_schema i got the foreigh_keys info:
*mysql> show create table confluence.CONTENTPROPERTIES;*
CONTENTPROPERTIES | CREATE TABLE `CONTENTPROPERTIES` (
  `PROPERTYID` bigint(20) NOT NULL,
  `PROPERTYNAME` varchar(255) COLLATE utf8_bin NOT NULL,
  `STRINGVAL` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `LONGVAL` bigint(20) DEFAULT NULL,
  `DATEVAL` datetime DEFAULT NULL,
  `CONTENTID` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`PROPERTYID`),
  KEY `content_prop_str_idx` (`STRINGVAL`),
  KEY `content_prop_long_idx` (`LONGVAL`),
  KEY `c_contentproperties_idx` (`CONTENTID`),
  KEY `content_prop_name_idx` (`PROPERTYNAME`),
  KEY `content_prop_date_idx` (`DATEVAL`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin

*mysql> SELECT * FROM information_schema.TABLE_CONSTRAINTS  WHERE
information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY' AND
information_schema.TABLE_CONSTRAINTS.TABLE_NAME = 'CONTENTPROPERTIES'\G*
CONSTRAINT_CATALOG: def
 CONSTRAINT_SCHEMA: confluence
   CONSTRAINT_NAME: FK984C5E4C8DD41734
      TABLE_SCHEMA: confluence
        TABLE_NAME: CONTENTPROPERTIES
   CONSTRAINT_TYPE: FOREIGN KEY

So, when i don't use glusterFS for container error not ocured and update
proceed successfully and "show create table" shows a fireign_keys info

Do you have same error or do you know how to fix that problem with mysql
when using GlusterFS?

PS:
OS Debian 8
GlusterFS version 3.7.18-1

*gluster volume info GFSconfluence*
Volume Name: GFSconfluence
Type: Replicate
Volume ID: fda9cd44-2439-4ab2-9e2e-34b2f54dd14a
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: 192.168.255.3:/lxc/confluence/glusterfs
Brick2: 192.168.255.4:/lxc/confluence/glusterfs
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gluster.org/pipermail/gluster-users/attachments/20161215/87314845/attachment.html>


More information about the Gluster-users mailing list