Как реплицировать SQL запросов на удаленном устройстве? - PullRequest
0 голосов
/ 07 августа 2020

У меня есть 2 похожих устройства со встроенным дистрибутивом Linux, основанным на Yocto Krogoth, и оба имеют 512 МБ памяти. Эти устройства подключаются через Ethe rnet. У них обоих запущено MariaDB 10.1.30.

Я хочу иметь возможность создать какие-то отношения "первичный-вторичный". Таким образом, каждое INSERT, UPDATE or DELETE, выполненное на первичном устройстве, будет реплицироваться на вторичном.

Сбрасывать базу данных на вторичном устройстве каждые N секунд не подходит. Также я попытался настроить репликацию, как описано здесь https://www.lexiconn.com/blog/2014/04/how-to-set-up-selective-master-slave-replication-in-mysql/, но это не работает - служба mysqld просто не запускается без записи ошибок в свой журнал.

Интересно, если есть ли другие способы выполнить такую ​​репликацию? Возможно, какие-то программные способы (Python 2.7 используется для системных служб на этом устройстве).

Это my.cnf файл:

#password                   = password
port                        = 3306
socket                      = /var/lib/mysql/mysql.sock

[mysqld_safe]
err-log                 = /var/log/mysql.err

[mysqld]
user                        = mysql
port                        = 3306
socket                  = /var/lib/mysql/mysql.sock
pid-file                    = /var/lib/mysql/mysqld.pid
log-error                   = /var/log/mysqld.err
basedir                     = /usr
datadir                     = /var/lib/mysql
skip-external-locking
# skip-networking
ignore-builtin-innodb
default-storage-engine              = myisam
skip-name-resolve
# bind-address                  = localhost
max_sp_recursion_depth = 255
event_scheduler = ON
sql_mode = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,TRADITIONAL,ALLOW_INVALID_DATES,NO_AUTO_VALUE_ON_ZERO
max_connections = 1000
back_log = 512
thread_cache_size = 128
thread_handling = pool-of-threads
query_cache_size=10485760
query_cache_type=ON
stored_program_cache=2048
join_buffer_size=1048576
#general-log
#general-log-file = /var/log/queries.log
#log-output = file
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d```

Thanks in advance.

1 Ответ

0 голосов
/ 07 августа 2020

Хорошо, сделай это. Основная потенциальная проблема заключается в том, являются ли IP-адреса статическими c.

Какие ошибки происходят?

Предупреждение: 512M - это очень плотно. Покажите нам свой my.cnf; может быть что-то сжаться.

...