手把手教你实现MySQL双机数据同步

发表于:2011-7-01 09:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  编者按:很多朋友一开始接触MySQL双机同步需求的时候可能会感到不知道从哪里入手,事实上这是MySQL本身就支持的功能之一。本文提供有关MySQL主从同步的初步思路,供大家参考。

  一、需求问题

  假设目前有两台 MySQL 数据库服务器,如何实现这两台机器的数据同步问题?即在一台机器上修改数据库后,另一台机器会同步更新所修改的信息。

  二、解决方案

  查资料发现 MySQL 支持单向,异步复制,复制过程中一个服务器充当主服务器,而另一个或多个其他服务器充当从服务器。

  原理是这样的:

  主服务器将更新写入二进制日志文件,并维护文件的一个索引来跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接受从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

  2.1 测试环境

  1. Master : 192.168.7.67 (CentOS 5.5  x86_64 )   MySQL Version  :  5.0.77  
  2. Slave: 192.168.56.103 (CentOS 5.3 i386)  MySQL  Version : 5.0.45

  备注:

  Master 和 slave 端的 MySQL 版本最好要一样的,或者 Master 端的版本高于 Slave 端

  2.2 配置过程

  2.2.1 Master 端设置

  开启 MySQL 服务并新建一个测试数据库 abc:

  1. root@camlit ~: /etc/init.d/mysqld start   
  2. jian.ma@camlit  ~: mysql -u root -p   
  3. Enter password: xxxx  
  4. Welcome to the MySQL monitor.  Commands end with ; or \g.   
  5. Your MySQL connection id is 3   
  6. Server version: 5.0.77 Source distribution   
  7. Type 'help;' or '\h' for help. Type '\c' to clear the buffer.   
  8. mysql> create database abc;   
  9. Query OK, 1 row affected (0.31 sec)  
  10. ###创建一个用来同步的用户,指定只能在 192.168.56.103 登录  
  11. ###REPLICATION SLAVE: Enable replication slaves to read binary log events from the master  
  12. mysql> grant replication slave on *.* to 'test1'@'192.168.56.103' identified by 'test1';   
  13. Query OK, 0 rows affected (0.16 sec)

  修改配置文件:

root@camlit ~: vi /etc/my.cnf

  备注:在修改配置文件之前做好该文件的备份工作

  1. [mysqld]   
  2. datadir=/var/lib/mysql   
  3. socket=/var/lib/mysql/mysql.sock   
  4. user=mysql   
  5. old_passwords=1   
  6. ##增加下面内容  
  7. server_id=1###1 表示 master, 2 表示 slave   binlog-do-db=abc ###需要同步的数据库,如果有多个数据库,每个数据库一行  binlog-ignore-db=mysql###不需要同步的数据库 log-bin=mysql-bin   
  8.    
  9. [mysqld_safe]   
  10. log-error=/var/log/mysqld.log   
  11. pid-file=/var/run/mysqld/mysqld.pid

  重启服务:

root@camlit ~: /etc/init.d/mysqld restart

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号