在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最后一段
二、修改从服务器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;
host值为%,代表可以是任何客户端。
mysql> show master status;
这两个值要记住,在配置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>start slave;
六、检查从服务器功能状态
mysql> show slave status\G
如下,Slave_IO_running:Yes
Slave_SQL_running:Yes
则代表成功,否则任何其他状态都是失败
到这里,主从配置完毕。
七、验证主从效果
主服务器上的操作
在主服务器上创建数据库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;
查看student表里的数据:
中间遇到的一些问题:
1.如果主从数据库的表结构不一致,会出现问题。
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