mysql主从配置

一、主库配置:my.cnf
          #数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值;
          server-id = 1
          #启用二进制日志;
          log-bin=mysql-bin
          #需要同步的二进制数据库名;
          binlog-do-db=test
          #不同步的二进制数据库名,如果不设置可以将其注释掉;
          binlog-ignore-db=information_schema
          binlog-ignore-db=mysql
          binlog-ignore-db=personalsite
          #设定生成的log文件名;
          log-bin="***"
          #把更新的记录写到二进制文件中;
          log-slave-updates
二、从库配置:my.cnf
          #如果需要增加Slave库则,此id往后顺延;
          server-id = 2
          log-bin=mysql-bin
          #主库host
          master-host = 192.168.194.193
          #在主数据库服务器中建立的用于该从服务器备份使用的用户
          master-user = mysync
          master-password = 123456
          master-port = 3306
          #如果发现主服务器断线,重新连接的时间差;
          master-connect-retry=60
          #不需要备份的数据库;
          replicate-ignore-db=mysql
          #需要备份的数据库
          replicate-do-db=test
          log-slave-update


进入主数据库服务器,创建上面备份使用的用户名和密码,同时授权replication slave,super和reload
grant replication slave,super,reload on minishop.* to mysync@192.168.194.195 identified by '123456';

change master to master_host='192.168.194.193',master_user='root',master_password='123456', master_log_file='mysql-bin.000008',master_log_pos=337;

检查slave状态:
     show slave status\G;
     主要是两个参数:
          Slave_IO_Running: Yes  --IO文件(同步时的二进制文件)。
          Slave_SQL_Running: Yes --SQL语句
遇到问题:
1、主从数据库server_id 相同报错。(由于是直接克隆的虚拟机,所以会出来此问题)
     错误信息:Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs;these UUIDs must be different for replication to work.
     查看之后,server_id不相同。是server_uuid相同。
     /var/lib/mysql/auto.cfg   查看server_uuid,果然与主数据库相同。
     将auto.cfg文件重命名,然后重启从库服务,service mysql restart,重新生成auto.cfg文件,问题解决。
2、检查从库数据同步时出错。
     1)、主从log_file名字不同,或log_pos不同,导致从库去主库找二进制文件(同步数据)时,找不到,报错;
          报错信息:Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
          解决方法:重新修改从库配置(语句):change master to master_host='192.168.194.193',master_user='root',master_password='123456', master_log_file='mysql-bin.000008',master_log_pos=337;
                          修改之前可以去主库中,show master status,就可以看到主库的二进制文件名和pos了。
     2)、Slave_SQL_Running: No 同步数据时,sql语句报错。
          报错信息:Error 'Table 'test.tf_f_user' doesn't exist' on query. Default database: 'test'. Query: 'INSERT INTO `tf_f_user` (`id`, `name`, `sex`, `mobile`, `password`, `email`) VALUES ('2', 'yangmm', '1', '1', '123456', '[email protected]')'//具体的报错信息
          mysql> slave stop;
          mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
          mysql> slave start;

你可能感兴趣的:(Mysql)