1、配置/etc/my.cnf文件

采取双机部署方式,两台机器的配置文件略有不同,如下图所示,server-id设置为不同的数字,auto_increment_offset一台机器设置为1,另外一台机器设置为2

mysql数据库同步部署_identified

2、启动mysql服务

#service mysql start

#chkconfig mysql on

#/usr/bin/mysqladmin -u root password 'mysql.rzrk'

3、主备机配置

确认两台机器MYSQL服务都正确配置并成功启动,然后进行master同步的配置,以192.168.1.119192.168.1.220为例,在89上分别执行如下命令:

  grant replication slave on *.*to 'replication'@'192.168.1.%' identified by       'replication.rzrk';

在数据库中建立replication账号,并且允许192.168.1.0网段的地址来登录,密码是replication.rzrk:

 flush privileges;

刷新数据库。

  show master status;


mysql数据库同步部署_identified_02

然后再在119上执行如下命令(其中master_log_filemaster_log_pos的值是220机器上显示的信息):


在这里主要是看:
                   Slave_IO_Running=Yes
                   Slave_SQL_Running=Yes

slaveI/OSQL线程都已经开始运行,而且Seconds_Behind_Master不再是NULL。日志的位置增加了,意味着一些事件被获取并执行了。如果你在master上进行修改,你可以在slave上看到各种日志文件的位置的变化,同样,你也可以看到数据库中数据的变化。


mysql数据库同步部署_identified_03

mysql数据库同步部署_mysql_04

结果如下所示:

mysql数据库同步部署_mysql_05



4、验证

在其中一台机器导入初始数据库,命令如下:


mysql –u  root -pmysql.rzrk

create database ttmgrportaldefault charset utf8;

quit

命令行执行:

mysql -u root -pttmgrportal < ttmgrportal_0828.sql




经验总结如下:mysql同步出问题就这样进行排查:

1Warning: World-writable config file '/etc/my.cnf' is ignored

解决:#chmod 644/etc/my.cnf

       # service mysqld stop

       # service mysqld start

 

 

2、Slave_SQL_Running: NO

   Seconds_Behind_Master:NULL

解决:>stop slave;

      >set global sql_slave_skip_counter =1;

      >start slave;

 

3、Fatal error: The slave I/O threadstops because master and slave have equal MySQL server UUIDs; these UUIDs mustbe different for replication to work.

 

解决:

> show variables like 'server_id';

> set global server_id=2; #此处的数值和my.cnf里设置的一样就行

> slave start;

 

4、mysql主从同步中showmaster status,结果为空?

 

没有开启二进制日志

mysql>show variables like '%log_bin%';   如果是off表示你没有开启

 

开启二进制日志啊

在my.cnf中添加一条语句

log_bin=/var/log/mysqld/mysql-bin