linux下 mysql 5.5 数据库主从复制配置

1、/etc/my.cnf 主数据库配置


#一般已存在
server-id = 1           #必须设置的,主库的 id
#需要进行复制的数据库
binlog-do-db = mydatabase        #尽量不用,如果要过滤数据库,在从库中设置
#不需要进行复制的数据库
replicate-ignore-db = mysql        #尽量不用,如果要过滤数据库,在从库中设置
replicate-ignore-db = test            #尽量不用,如果要过滤数据库,在从库中设置
replicate-ignore-db = information_schema      
#尽量不用,如果要过滤数据库,在从库中设置
#生成的同步数据所需要的文件,序号从:syslog.000001开始
log-bin=mysql-bin                        #二进制文件

binlog_format=mixed                  #默认 采用混合模式,无特殊要求,就用混合模式



2、重启mysql,登陆Mysql,设置从数据库所需要的权限:可以从任何机器登陆,账号/密码:slave/123456


>grant replication slave,reload,super on *.* to 'slave'@'%' identified by '123456';

3、查看状态
>show master status

---------------------------------------------------------------------------------------------------
1、/etc/my.cnf 从数据库配置,由于Mysql版本从 5.1.7以后开始就 不支持“master-host”类似的参数,用配置文件设置主从同步时,出现:mysqld: unknown variable 'master-host=127.0.0.1'

#将配置文件中的server-id该为2
server-id = 2
#需要进行同步的数据库名称

replicate-do-db = mydatabase  过滤数据库,此参数用一下参数代替

replicate-wild-do-table=db_name.%
replicate-wild-ignore-table=mysql.%



2、重启mysql,登陆Mysql,设置同步设置,其中syslog.000001为日志文件,master_log_pos=0为日志开始复制的位置,即:从syslog.000001的0位置同步数据,日志文件和行号根据实际情况进行处理
>change master to master_host='192.168.1.253',master_user='slave',master_password='123456',master_log_file='syslog.000001',master_log_pos=0;


3、启动从数据库数据同步命令:
   >start slave



4、查看从数据库同步状态,Slave_IO_Status,Slave_Io_Running,Slave_SQL_Running
  >show slave status


  Slave_io_running =yes
  Slave_sql_running = yes


5、需要重新进行同步的时候,先停止同步服务器,重新设置,同步的日志文件master_log_file和同步起始位置master_log_pos:
   stop slave

你可能感兴趣的:(sql,mysql)