#apt-get install mysql-server -y
创建同步帐户
我这里就直接使用的数据库默认用户root
在ubuntu4上:
mysql>grant replication slave on *.* to 'root'@'192.168.2.5' identified by '12345678'
mysql>flush privileges
在ubuntu5上:
mysql>grant replication slave on *.* to 'root'@'192.168.2.4' identified by '12345678'
mysql>flush privileges
修改mysql的配置文件
/etc/mysql/my.cnf
在Ubuntu4 上:
【code】
[mysqld]
binlog-do-db=db_rocky #需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-ignore-db=mysql #不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
replicate-do-db=db_rocky #需要进行同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-do-db选项
replicate-ignore-db=mysql,information_schema #不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项
#同步参数:
server-id=1
log_bin = /var/log/mysql/mysql-bin
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
slave-skip-errors=all #过滤掉一些没啥大问题的错误
【/code】
在Ubuntu5上:
[mysqld]
server-id=2 #设置一个不同的id、注意这里在my.cnf里面有个默认值是 1 、把默认值改掉、而不能新增一个server-id
binlog-do-db=db_rocky #需要记录二进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-ignore-db=mysql #不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-ignore-db选项
#需要同步的数据库
replicate-do-db=db_rocky
#需要进行同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
replicate-ignore-db=mysql,information_schema #不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
#同步参数:
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2
slave-skip-errors=all #过滤掉一些没啥大问题的错误
分别重启服务器上的mysql服务
分别在服务器上查看做为主服务器状态
mysql>flush tables with read lock#防止进入新的数据
mysql>show master status\G
分别在服务器上用change master语句指定同步位置 :
在ubuntu4上:
change master to master_host='192.168.2.5',master_user='root',master_password='12345678',master_log_file='mysql-bin.000001',master_log_pos=107
在Ubuntu5上:
change master to master_host='192.168.2.4',master_user='root',master_password='12345678',master_log_file='mysql-bin.000001',master_log_pos=107
还好MySQL数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现MySQL数据库的热备份。 2、要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备MySQL的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。 3、设置主数据库服务器: a.首先查看主服务器的版本是否是支持热备的版本。然后查看my.cnf(类Unix)或者my.ini(Windows)中MySQLd配置块的配置有没有log-bin(记录数据库更改日志),因为MySQL的复制机制是基于日志的复制机制,所以主服务器一定要支持更改日志才行。然后设置要写入日志的数据库或者不要写入日志的数据库。这样只有您感兴趣的数据库的更改才写入到数据库的日志中。 server-id=1 //数据库的id这个应该默认是1就不用改动 log-bin=log_name //日志文件的名称, //这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称 binlog-do-db=db_name //记录日志的数据库 binlog-ignore-db=db_name //不记录日志的数据库以上的如果有多个数据库用","分割开 然后设置同步数据库的用户账号 MySQL>GRANT REPLICATION SLAVE ON *.* ->TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass'4.0.2以前的版本, 因为不支持REPLICATION 要使用下面的语句来实现这个功能 MySQL>GRANT FILE ON *.* ->TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass'设置好主服务器的配置文件后重新启动数据库 b.锁定现有的数据库并备份现在的数据 锁定数据库 MySQL>FLUSH TABLES WITH READ LOCK备份数据库有两种办法一种是直接进入到MySQL的data目录然后打包你需要备份数据库的文件夹,第二种是使用MySQLdump的方式来备份数据库但是要加上"--master-data " 这个参数,建议使用第一种方法来备份数据库欢迎分享,转载请注明来源:内存溢出
评论列表(0条)