Как да направя репликация
от MySQL UG Bulgaria
/В процес на разработка/
Какво е репликация
С най-общи думи, процеса на репликация ни дава възможността да правим промени на един сървър, а те да се появяват на много сървъри. След като направим промените на основния сървър MySQL записва всички промени във бинарен файл, който ние задаваме къде да се намира. На определено време се отваря връзка към другия сървър (или сървъри) и тези промени се прилагат и там.
Как да я направим
Първото нещо което трябва да се направи е да се дадат права на потребителя, които ще се използва само за репликацията.Това трябва да се изпълни с 'root' права. Както виждате се дават права необходими само за процеса на репликация:
GRANT REPLICATION SLAVE, REPLICATION CLIENT
ON *.*
TO 'replicant'@'slave_host'
IDENTIFIED BY 'my_pwd';
Не забравяйте са направите такъв потребител и на двата сървъра, между които ще се извършва репликацията. След като сме се уверили, че това е така, можем да започнем с малко настроийки, който трябва да поставим в конфигурационния файл - my.cnf (или my.ini) в зависимост на каква операционна система сте.
* Добавете в [mysqld] частта следните линии server-id = 1 log-bin = /var/log/mysql/bin.log
Както говорят сами за себе си, редовете са както следва
1. Какво е ID-то на сървъра 2. Пътя за бинарния лог на MySQL, можете да го насочите накъдето искате, стига да сте сигурни, че папката съществува и че потребителя mysql е собственник на папката.
За другият сървър, ще имаме малко повече данни в този конфигурационен файл:
ID на сървъра
server-id = 2
Данни за връзка с него
master-host = mastersite.com master-port = 3306 master-user = replicant master-password = my_pwd
и информация за логовете
log-bin = /var/log/mysql/bin.log log-bin-index = /var/log/mysql/log-bin.index log-error = /var/log/mysql/error.log
relay-log = /var/log/mysql/relay.log relay-log-info-file = /var/log/mysql/relay-log.info relay-log-index = /var/log/mysql/relay-log.index
