设为首页 收藏本站
查看: 691|回复: 0

[经验分享] mysql数据库主从同步配置教程--数据库同步

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-6-21 09:16:20 | 显示全部楼层 |阅读模式
背景: 最近有一个mysql数据库同步的需求,我用了mysql主从同步的方法来实现。下面把步骤记录一下。


环境和拓扑

操作系统:Centos6.6 X64

mysql版本:5.1.73

Master: 10.6.1.210
Slave:  10.6.1.211
wKioL1dnh8CwnoQKAAAo92B86eQ742.jpg


需求: 实现Master上test库同步到Slave上,但是禁止同步该库下的AA表


1.配置Master上的my.cnf
#vim  /etc/my.cnf 添加内容到[mysqld]下,设定只同步test 数据库:
[mysqld]
log-bin=mysql-bin
binlog_format=mixed
binlog_do_db=test

server-id=1

2.配置Slave上的my.cnf
#vim  /etc/my.cnf
添加内容到[mysqld]下:
log-bin=mysql-bin
binlog_format=mixed
server-id=10
relay-log =relay-bin
log_slave_updates=1
replicate_ignore_table=AA(忽略同步某个表)

3.在Master中建立一个备份帐户:每个slave使用标准的MySQL用户名和密码连接Master。
进行复制操作的用户会授予REPLICATION   SLAVE 权限。

命令如下:
#建立一个帐户repluser,并且只能允许10.6.1.211这个主机来登陆,密码是123456。
mysql>grant  replication client,replication  slave  on  *.*   to 'repluser'@'10.6.1.211'    identified by  '123456';

QueryOK,0 rows affected(0.00sec)

mysql>flush privileges;
QueryOK,0 rows affected(0.00sec)


4.拷贝数据,保持数据库内数据一致,新安装可以忽略此步骤。

备份Master上的test库,然后复制到从服务器上.

#mysqldump -u root -p password123   test>/tmp/test.sql
将导出的数据库复制到从服务器上。
#scp /tmp/test.sql root@10.6.1.211:/tmp/

在Slave上导入新的test数据库。 登陆从后运行
#mysql -u root -p password123 test</tmp/test.sql

5.重启mysql服务,主从server均要重启。
#service mysql restart

6.查看Master数据库上的bin文件以及时间点. 登录Master服务器的mysql  后执行:
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000015 |     2474 | test         |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

此处,bin文件为mysql-bin.000015,节点为2474。

7.启动从服务器的中继日志,登陆从服务器的mysql 后执行以下命令,标红部分为刚才在主服务器上查询到的bin  文件以及节点信息:

mysql>change master to master_host='10.6.1.210',master_user='repluser',
master_password='123456',master_log_file='mysql-bin.000015',master_log_pos=2474,
master_connect_retry=5
QueryOK,0 rows affected(0.03sec)

#开启从服务器节点的复制进程,实现主从复制;
mysql>start slave;

#查看从服务器状态,主要关注IO线程和SQL  线程的开启状况:
mysql>show slave status \G





Slave_IO_Running:Yes            #IO thread  是否运行
Slave_SQL_Running:Yes         #SQL thread是否运行



8.查看主从服务器上的线程状态
主服务器:

mysql>show processlist \G


State: Has sent all binlog to slave; waiting for binlog to be updated



从服务器
mysql>show processlist \G


State: Has read all relay log; waiting for the slave I/O thread to update it


至此,mysql数据库主从同步复制配置完成.




验证
1.  在Master上的test库下新建一个test表.   插入记录,然后看看是否同步到了Slave上。

Master上建表

mysql> CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ;


Master上插入记录
mysql>insert into test(id,name) values(1,'steven');

mysql> select * from test;
+----+--------+
| id | name   |
+----+--------+
|  1 | steven |
+----+--------+
1 row in set (0.00 sec)


Slave上查看是否同步过去.


mysql> select * from test;
+----+--------+
| id | name   |
+----+--------+
|  1 | steven |
+----+--------+
1 row in set (0.00 sec)


2. 在Master上的test库下新建一个AA表.   插入记录,然后看看是否同步到了Slave上。
在Master上查询AA表.
mysql> select * from AA;
+----+--------+
| id | name   |
+----+--------+
|  1 | Angelababy |
+----+--------+
1 row in set (0.00 sec)





Slave上查询AA记录是空.

mysql> select * from AA;
Empty set (0.00 sec)






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-233092-1-1.html 上篇帖子: mysql配置文件my.cnf的事例并附解释 下篇帖子: linux下mysql命令大全 数据库同步 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表