实现两台MySQL数据库数据的同步的方法_Linux

1. 安装配置 

两台服务器,分别安装好Mysql,都安装在 /usr/local/mysql 目录下(安装步骤省略,请参考相关文档),两台服务器的IP分别是192.168.0.1和192.168.0.2,我们把192.168.0.1作为master数据库,把192.168.0.2作为slave服务器,我们采用单向同步的方式,就是master的数据是主的数据,然后slave主动去master哪儿同步数据回来。 

两台服务器的配置一样,我们把关键的配置文件拷贝一下,默认的配置文件是在 /usr/local/mysql/share/mysql目录下,分别有 my-large.cnf, my-medium.cnf, my-small.cnf等几个文家,我们只是测试,使用my-medium.cnf就行了。mysql安装完后,默认的配置文件是指定在数据库存放目录下的,我们用的是4.1.X的,所以配置文件就应该在 /usr/local/mysql/var 目录下,于是把配置文件拷贝过去: 

cp /usr/local/mysql/share/mysql/my-medium.cnf  /usr/local/mysql/var/my.cnf两台服务器做相同的拷贝配置文件操作。 

2. 配置Master服务器 

我们要把192.168.0.1配置为主mysql服务器(master),那么我们就要考虑我们需要同步那个数据库,使用那个用户同步,我们这里为了简单起见,就使用root用户进行同步,并且只需要同步数据库abc。 

打开配置文件: 

vi /usr/local/mysql/var/my.cnf找到一下信息: 

# required unique id between 1 and 2^32 - 1PHPChina 开源社区门户D%wM/x-Y3U_$zs# defaults to 1 if master-host is not setg~8FPv9W37313# but will not function as a master if omitted
ML.?K
? NZoW37313server-id        = 1    //1为master,2为salve添加两行: 

sql-bin-update-same     //同步形式PHPChina 开源社区门户U$m:}s'vbinlog-do-db     = abc  //要同步的数据库重启192.168.0.1的mysql服务器: 

/usr/local/mysql/bin/mysqladmin shutdownPHPChina 开源社区门户0w+g!?&P0d U u#Mb    i/usr/local/mysql/bin/mysqld_safe --user=mysql &3. 配置Slave服务器 

我们的slave服务器主要是主动去master服务器同步数据回来,我们编辑配置文件: 

vi /usr/local/mysql/var/my.cnf找到下面类似的信息: 

# required unique id between 1 and 2^32 - 13FS8oOn lj8o37313# defaults to 1 if master-host is not setPHPChina 开源社区门户9UO7X"TRT
Gb$Ku# but will not function as a master if omittedcwO    @8pmw37313server-id        = 1把上面的server-id修改为2,同时添加一些信息: 

server-id                   = 2                        //本Mysql是slave服务器.h wjC9C'Hu37313master-host             = 192.168.0.1    //master服务器的IPPHPChina 开源社区门户}~q    ~Q_master-user             = root                  //连接master服务器的用户PHPChina 开源社区门户*_B\9n(tmaster-password   = ''                        //连接master服务器的密码PHPChina 开源社区门户6O&Ys;rUEmaster-port              = 3306                //连接端口S@.@"N&Sb K37313master-connect-retry    = 10              //重试次数4`']w^0qW;N2J37313replicate-do-db        = abc                  //要同步的数据库PHPChina 开源社区门户`,Q/C?$hC*llog-slave-updates                              //同步的形式重启192.168.0.2的mysql服务器: 

/usr/local/mysql/bin/mysqladmin shutdownPHPChina 开源社区门户.wh1]^~!|V$B0\/usr/local/mysql/bin/mysqld_safe --user=mysql &4. 测试安装 

首先查看一下slave的主机日志: 

cat /usr/local/mysql/var/xxxxx_err (xxx是主机名)检查是否连接正常, 看到类似这样的信息就成功了 

051031 11:42:40  mysqld startedPHPChina 开源社区门户W2l0Com R[^ b9S-Rib051031 11:42:41  InnoDB: Started; log sequence number 0 43634PHPChina 开源社区门户UqT7y!Df$c
ak"BL/usr/local/mysql/libexec/mysqld: ready for connections.PHPChina 开源社区门户;|0G|;vHFZ7}Version: '4.1.15-log'  socket: '/tmp/mysql.sock'  port: 3306  Source distributionPHPChina 开源社区门户(J9Z,Kg Lx%]    i6OW051031 11:42:41 [Note] Slave SQL thread initialized, starting replication in log 'FIRST' PHPChina 开源社区门户Q9n-BU8[AYc LAat position 0, relay log './new4-relay-bin.000001' position: 4PHPChina 开源社区门户j v"jB\n7s*w051031 11:43:21 [Note] Slave I/O thread: connected to master 'root@192.168.0.1:3306',  ]-{eYn F5vK37313replication started in log 'FIRST' at position 4在Master查看信息 

/usr/local/mysql/bin/mysql -u root查看master状态: 

mysql> show master status;查看Master下mysql进程信息: 

mysql> show processlist;在slave上查看信息: 

/usr/local/mysql/bin/mysql -u root查看slave状态: 

mysql> show slave status;查看slave下mysql进程信息: 

mysql> show processlist;你再在master的abc库里建立表结构并且插入数据,然后检查slave有没有同步这些数据,就能够检查出是否设置成功。 

最后,如果有兴趣的话,可以研究一下双击热备份,或者一台master,多台slave的同步实现。

时间: 2024-10-25 21:08:21

实现两台MySQL数据库数据的同步的方法_Linux的相关文章

教你怎样在两台MySQL数据库间实现同步

  做开发的时候要做MySQL的数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,MySQL的版本是4.1.15,都是目前最新的版本. 1. 安装配置 两台服务器,分别安装好MySQL,都安装在 /usr/local/MySQL 目录下(安装步骤省略,请参考相关文档),两台服务器的IP分别是192.168.0.1和192.168.0.2,我们把192.168.0.1作为master数据库,把192.168.0.2作为slave服务器,

详解MySQL数据库设置主从同步的方法_Mysql

简介 MySQL主从同步是目前使用比较广泛的数据库架构,技术比较成熟,配置也不复杂,特别是对于负载比较大的网站,主从同步能够有效缓解数据库读写的压力. MySQL主从同步的机制: MySQL同步的流程大致如下:      1.主服务器(master)将变更事件(更新.删除.表结构改变等等)写入二进制日志(master log).      2.从服务器(slave)的IO线程从主服务器(binlog dump线程)获取二进制日志,并在本地保存一份自己的二进制日志(relay log)     

两台MYSQL服务器 主库坏挂掉后 备库启动,应用不更改设置

问题描述 两台MYSQL服务器 主库坏挂掉后 备库启动,应用不更改设置 我有两台mysql数据库服务器,服务器A 192.168.46.128 备库B 192.168.30.129 现在想做主主或者主备复制,另外想实现当主库A挂掉之后,备库B接管继续工作.正常情况应用程序连接数据库是通过IP连接的,假如我之前连了192.168.46.128,那它挂了之后,备用数据库启动IP就变成了192.168.30.129 请教大神,我改如何设置做到,主库挂了,应用不做修改的情况下,可以自动连到192.168

mysql数据库数据同步/主从复制的配置方法

如果有多台mysql数据库服务器需要需要做数据同步,或者读写分离的时候.就需要做一个数据库的主从复制,操作起来也比较简单. 如下: 主服务器x.x.x.233 从服务器x.x.x.234 首先需要在主数据库配置一下my.cnf 开启binlog增加serverid server-id                       = 1 log-bin                        = bin-log 重启服务后生效 登陆数据库 1 #mysql -uroot -p 创建一个用户台

不同服务器上的mysql数据库如何实现同步异步备份

1.服务器状态 服务器A:192.168.1.1 服务器B:192.168.1.2 2.创建同步用户 主机域A:192.168.1.2 用户名A:sync_a 密码A:aaa 主机域B:192.168.1.1 用户名B:sync_b 密码B:bbb 至少分配以下权限grant replication slave 3.执行flush privileges 4.停止MySQL 5.配置my.cnf(my.ini) 服务器A 服务器B user = mysql log-bin = mysql-bin

配置Mysql数据库的主从同步教程

配置Mysql数据库的主从同步(一主一从) 一.主库开启BINLOG.server-id [root@Master-Mysql ~]# grep -E "server-id|log-bin" /etc/my.cnf log-bin = /usr/local/mysql/data/mysql-bin server-id = 1 mysql> show variables like '%log_bin%'; +---------------------------------+---

数千台MySQL数据库遭黑客比特币勒索,该怎么破?

据内部数据中心安全的行业领导者GuardiCore公司爆料,数千台MySQL数据库遭到勒索.这是近半年内,不断频发的数据库勒索事件的延续:   国内Oracle数据库遭"恶作剧"比特币勒索: 2017年1月11日报道3.3万台Mongo数据库实例被勒索,有些数据库直接被删除,国内受害者众多: 2017年1月13日报道3.5万个ElasticSearch CCluster被勒索,被删除数据大小至少450TB: 2017年1月19日报道1万+台Hadoop和CouchDB被勒索: 2017

一台MySQL数据库启动多个实例

一台数据库服务器为什么运行多个实例? 有一台MySQL数据库服务器硬件利用率往往在30%左右,那剩余的70%岂不是浪费了,这时就可以考虑运行多个MySQL服务,你可以做主从架构,读写分离,数据库隔离,容纳更多的并发链接,充分利用硬件资源,让服务器性能发挥最大化. 1.编译安装MySQL5.5 1 2 3 4 5 6 7 8 9 10 11 12 # yum install -y cmake gcc gcc-c++ make cmake ncurses ncurses-devel # groupa

mysql 数据库-mysql数据库数据量太多有没有必要分开存放?

问题描述 mysql数据库数据量太多有没有必要分开存放? 就是做一个考勤系统,比如很多公司都是用一个考勤系统的后台(java做的后台),那么数据库也是同一个数据库,只是在存取数据时用每个公司有编号区分,这样的话,时间长了会产生很多数据,这样会不会影响访问效率?应该怎么设计数据库?是不是 应该分开存放?每个公司建一个数据库存啊?有没有好的建议?(目前数据库是mysql) 解决方案 这个你需要预估一下数据量,才好判断.如果数据量不大的话,共用一个库也未尝不可.本身考勤系统,就不是大数据量,高并发的系