环境:
系统: CentOS release 6.3 (Final)
mysql版本:5.5.39-log MySQL Community Server (GPL)
mysql采用的是rpm安装,默认是没有my.cnf文件的。rpm默认安装成功后,会在/usr/share/doc/MySQL-server-5.5.39/或/usr/share/mysql/会有
my-small.cnf,my-innodb-heavy-4G.cnf,my-medium.cnf,my-huge.cnf,my-large.cnf 这几个文件。将my-medium.cnf复制到/etc/下命名为my.cnf。
master(192.168.7.128)服务器如下配置:
打开my.cnf在[mysqld]下加入
server-id = 1//服务器id,,需要唯一
log-bin = log
binlog-do-db = test //要同步的库
binlog-ignore-db=mysql//不需要同步的库
重启数据库
进入mysql,使用如下命令给slave服务给一个帐号:
mysql> GRANT REPLICATION SLAVE,FILE ON *.* TO 'slave1'@'192.168.7.129' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
刷新,使权限马上生效。
执行show master status\G 记下
File: mysql-bin.000001
Position: 2409
slave(192.168.7.129)服务器:
不知道为什么,在从服务器里设置server_id不起作用。只有在命令行使用set global server_id=2来设置服务器id。
进入slaveMysql服务器
change master to master_host='192.168.7.128',master_user='slave1',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=2409;
start slave;
show slave status\G
看到这两个Slave_IO_Running: Yes,Slave_SQL_Running: Yes都YES说明主从同步成功。
如果没有同步成功,可能是两台机器的时间不一样。yun install ntpdate。装好后执行ntpdate cn.pool.ntp.org 命令会自动的同步时间。
在master服务器上,新建一张表,并插入数据,在slave上可以看到数据已经同步。
master:
slave: