Сбой репликации базы данных MySQL для некоторых таблиц при использовании RubyRep - PullRequest
0 голосов
/ 24 мая 2019

Я настраиваю частичную репликацию в базу данных MySQL, используя RubyRep .Но это не работает для некоторых таблиц.Что я сделал не так?

Это сервер Linux CentOS под управлением MySQL 5. Я попытался реплицировать две базы данных MySQL в локальной системе для двух одинаковых таблиц в две разные базы данных, что прекрасно работает.Поэтому я попробовал то же самое на сервере.На сервере, когда я пытаюсь создать новые таблицы, он работает отлично, но для некоторых существующих таблиц он не работает.

Свойства таблицы посещаемости:

| Field             | Type         | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| ATTENDANCE_DATE   | datetime     | NO   |     | NULL    |       |
| STUDENT_ID        | int(10)      | NO   |     | NULL    |       |
| CLASS_ID          | int(10)      | NO   |     | NULL    |       |
| STAFF_ID          | int(10)      | NO   |     | NULL    |       |
| ATTENDANCE_STATUS | char(1)      | YES  |     | NULL    |       |
| LATE_STATUS       | char(1)      | YES  |     | NULL    |       |
| LATE_TIME         | varchar(7)   | YES  |     | NULL    |       |
| DROP_TIME         | time         | YES  |     | NULL    |       |
| PICK_TIME         | time         | YES  |     | NULL    |       |
| REMARKS           | varchar(200) | YES  |     | NULL    |       |
| SCHOOL_ID         | int(11)      | YES  |     | NULL    |       |
| CREATED_ON        | datetime     | NO   |     | NULL    |       |
| CREATED_BY        | varchar(15)  | NO   |     | NULL    |       |
| MODIFIED_ON       | datetime     | YES  |     | NULL    |       |
| MODIFIED_BY       | varchar(15)  | YES  |     | NULL    |       |
+-------------------+--------------+------+-----+---------+-------+

И файл конфигурации RubyRep:

RR::Initializer::run do |config|                                                   
  config.left = {                                                                  
    :adapter  => 'mysql2',                                                         
    :database => 'database-A',                                          
    :username => '*******',                                                      
    :password => '*******',                                                   
    :host     => 'localhost'                                                       
  }                                                                                

  config.right = {                                                                 
    :adapter  => 'mysql2',                                                         
    :database => 'database-B',                                             
    :username => '*******',                                                      
    :password => '*******',                                                   
    :host     => 'localhost'                                                       
  }                                                                                

  config.left[:logger] = "log/left_database.log"                                   
  config.right[:logger] = "log/right_database.log"                                 
  config.options[:auto_key_limit] = 2                                              

  config.include_tables 'attendance', :replication_conflict_handing => :
left_wins, :sync_conflict_handling => :left_wins                                   
  # config.include_tables /^e/ # regexp matching all tables starting with e        
  # config.include_tables /./ # regexp matching all tables in the database         
end                                                                                

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

Теперь во время выполнения самой команды репликации происходит сбой с сообщением об ошибке

Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '), null, 'I');

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