在linux服务器下测试:

主(master)服务器IP:219.223.5.104(对应内网IP:192.168.1.75)

从(slave)服务器IP:219.223.5.105(对应内网IP:192.168.1.74)

一、修改主服务器master

       [mysqld]

       log-bin=mysql-bin   //[必须]启用二进制日志

       server-id=104      //[必须]服务器唯一ID,默认是1,一般取IP最后一段

Mysql主从数据库同步

二、修改从服务器slave

       [mysqld]

       log-bin=mysql-bin   //[必须]启用二进制日志

       server-id=105      //[必须]服务器唯一ID,默认是1,一般取IP最后一段

三、重启两台服务器的mysql

104: service mysqld restart;

105:service mysqld restart;

四、赋予MySQL远程登录权限

在主服务器master(104)上操作:

mysql -uroot -proot123

mysql > GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'password';

mysql > FLUSH privileges;

//其中*.*代表所有权限,mysync代表账号,password代表密码,'%'代表所有客户端都可以连接。

修改后需要刷新权限。

mysql> select user,host,password from mysql.user;

Mysql主从数据库同步

host值为%,代表可以是任何客户端。

mysql> show master status;

Mysql主从数据库同步

这两个值要记住,在配置slave时,需要使用到。

五、配置从服务器

mysql > mysql -uroot -proot123;

mysql> change master to
    -> master_host='192.168.1.74',                 #主服务器的IP
    -> master_user='mysync',                          #主服务器的连接用户名
    -> master_password='mysync',                 #主服务器的连接密码 
    -> master_log_file='mysql-bin.000001',     #对应上面截图中的File
    -> master_log_pos=1743;                         #对应上面截图中的Position

Mysql主从数据库同步

启动从服务器同步进程:

Mysql>start slave;   

六、检查从服务器功能状态

mysql> show slave status\G 

如下,Slave_IO_running:Yes

          Slave_SQL_running:Yes

则代表成功,否则任何其他状态都是失败

Mysql主从数据库同步

到这里,主从配置完毕。

七、验证主从效果

主服务器上的操作
在主服务器上创建数据库xd
mysql> create database xd;

Query Ok, 1 row affected (0.01 sec)

 

在主服务器上创建表student 
mysql> create table student (name varchar(256),age int,sex varchar(256));

Query Ok, 1 row affected (0.00 sec)

 

在主服务器上的表student 中插入记录

mysql> insert into student values('wangming',18,'f');

        insert into student values('xiaobai',20,'m');

Query Ok, 2 row affected (0.00 sec)

在从服务器上查看
mysql> show databases;

Mysql主从数据库同步

查看student表里的数据:

Mysql主从数据库同步

 

中间遇到的一些问题:

1.如果主从数据库的表结构不一致,会出现问题。

Mysql主从数据库同步

 

2.Slave_SQL_Running: No mysql同步故障解决方法

具体见下面链接:

转载自:http://kerry.blog.51cto.com/172631/277414/

3.单表同步

    在slave服务器配置:

    replicate-do-table=xd.student

    多张表则配置多个replicate-do-table

    复制某些表(可用匹配符)
    replicate-wild-do-table=tablename%

4.不同库相同表之间的同步

主库服务器的数据库名为yoon,从库服务器的库名为hank

在从库的my.cnf配置文件中添加如下参数,并重启数据库
replicate-rewrite-db = yoon -> hank

 

转载于:https://my.oschina.net/yq0128/blog/744848

相关文章: