mysql服务器主从服务器设置

2018-03-19 11:45:30 5584

1.简述

通过mysql主从服务器配置,实现数据库数据备份功能,防止主服务器数据文件损坏造成的数据丢失问题,另外其另一个其主要功能是实现数据库读写分离,降低主服务器的负载。


2.步骤

2.1.同步主服务器的数据到从服务

为从服务器创建同步账号

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO'repl'@'192.168.127.%' IDENTIFIED BY 'repl';

说明:%是通配符,表示192.168.127.0-192.168.127.255的Server都可以以repl用户名,以 repl密码登录到主服务器


停止主服务器mysql服务

service mysqld stop

在主服务器上导出要到同步到从服务器的数据库

命令格式:mysqldump -u 用户名 -p 数据库名 > 导出的文件名


例如:

mysqldump -u root -p test >/root/test.sql


拷贝test.sql文件到从服务器

scp /root/test.sql  root@server2:/root

从服务器加载数据

首先创建数据库后执行加载数据操作:

mysql> create database test;
mysql> source /root/test.sql;

2.2.    备份主从服务器/etc/my.cnf文件

cp /etc/my.cnf /etc/my.cnf.bak

2.3.    修改主服务器/etc/my.cnf文件。

在[mysqld]节点下添加:

server-id=1    #说明:server-id必须为唯一值,不能和从服务器相同
log_bin=mysql-bin #启动MySQ二进制日志系统

2.4.    修改从服务器/etc/my.cnf文件

在[mysqld]节点下添加:

server-id=2
replicate_wild_do_table=test4.%

#说明test.%代表要同步test数据库下所有的表,如果要同步多个数据库再添加一行replicate_wild_do_table参数,如果不指定此参数代表同步所有数据库。


2.5.    启动从数据库

service mysqld start;

2.6.    在从服务器上配置要同步的主服务器的参数

mysql> CHANGE MASTER TOMASTER_HOST='192.168.127.147',
mysql> MASTER_USER='repl',MASTER_PASSWORD='repl',
mysql> MASTER_LOG_FILE='mysql-bin.000001',
msyql> MASTER_LOG_POS=0;

说明:MASTER_HOST主服务器ip地址,MASTER_USER用户名,MASTER_PASSWORD密码,MASTER_LOG_FILE日志文件,MASTER_LOG_POS要从文件哪个位置记录的信息开始同步。


2.7.    从服务器启动slave模式

mysql> start slave;

2.8.    启动主服务器mysql服务

service mysqldstart

2.9.    在从服务上查看SLAVE状态

mysql> show slave status;

2.10.验证数据库是否可以同步,数据是否一致


后记:

1、如果主服务器和从服务器不指定要同步和忽略的数据库,则默认会同步所有数据库的数据。

2、可以在主服务器上指定binlog-do-db=osyunweidb和binlog-ignore-db=mysql参数限制要同步和忽略的数据库

3、可以在从服务器上指定replicate_wild_do_table和replicate_wild_ignore_table限制要同步和忽略的数据库

4、从服务器使用replicate_do_db和replicate_ignore_db限制要同步和忽略的数据库,会忽略掉跨数据表的增删改操作,所以不建议。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: