如何进行mysql数据库主从同步中数据库同步配置

54次阅读
没有评论

共计 2934 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章给大家介绍如何进行 mysql 数据库主从同步中数据库同步配置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

背景:最近有一个 mysql 数据库同步的需求,我用了 mysql 主从同步的方法来实现。下面把步骤记录一下。

环境和拓扑

操作系统:Centos6.6 X64

mysql 版本:5.1.73

Master: 10.6.1.210

Slave:  10.6.1.211

需求: 实现 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,用户名的密码都会存储在文本文件 master.info。进行复制操作的用户会授予 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)

关于如何进行 mysql 数据库主从同步中数据库同步配置就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计2934字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)