amy_888 发表于 2018-10-6 09:42:14

mysql5.5主从经验分享

  方法一:
  第一步:修改配置文件my.conf
  修改部分:server-id=1 (1为master数据库,2为slave数据库)
  log-bin=master-bin (master-bin和slave-bin便于区分)
  socket          = /r2/mysqldata/mysql.sock   数据库sock位置
  第二部分:重启数据库。(主备都重启)
  第三部分:在主数据库上创建用于主从复制的账户
  # mysql -uroot –p123456

  mysql> GRANT REPLICATION SLAVE ON . TO 'root'@'slave_IP'>  第四部:主数据库锁表(禁止再插入数据以获取主数据库的的二进制日志坐标)
  mysql> flush tables with read lock;(这一步看自己实际情况,有些必须有些不是必须的)
  第五步:查看主数据库的状态(并记录下File字段和Position字段的值,在配置从服务器时有用到)
  第六步:导出master数据库。
  #mysqldump -uroot -p123456 --all-databases --triggers --routines --events >
  /home/alldatabases.sql
  第七步:解锁master数据库锁表操作
mysql -uroot -p    (本命令在主数据库服务器上执行)
  mysql> unlock tables;
  第八步:把master到处的数据库同步到slave数据库上;
  第九步:在slave数据库上导入master的数据库
mysql -uroot –p123456 < /home/alldatabases.sql
  第十步:在从数据库服务器上设置主数据库服务器向从数据库服务器同步
mysql -uroot –p123456
  mysql> change master to master_host = '172.16.244.31',master_user='root',master_password='123456',master_log_file=‘master-bin.000015’,master_log_pos=120;
  第十一步:启动从数据库复制线程
  mysql> start slave;
  第十二步:查询从数据库的复制线程状态
  mysql> show slave status \G
  如果 Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  此两项为yes则主备成功;如果不成功重新操作;但在第十步操作如下:
mysql -uroot –p123456
  mysql>stop slave;
  mysql>reset slave;
  mysql> change master to master_host = '172.16.244.31',master_user='repl',master_password='123456',master_log_file=‘’master-bin.000011',master_log_pos=330;
  如果之前做过主从备份,记得master上执行 mysql>reset master; 从数据库操作 stop slave; reset slave;
  change master to master_host = '172.16.244.31',master_user='root',master_password='123456',master_log_file='master-bin.000169',master_log_pos=57496820;
  方法二:
  mysqldump -u root -p123456 --single-transaction --events --triggers --routines --flush-logs --master-data=2 --all-databases > xx.sql这是导所有数据库
  grep -i &quot;change master&quot; xx.sql通过这个取出sql中的同步点。导入后就可以用这个信息重新做同步点

页: [1]
查看完整版本: mysql5.5主从经验分享