mysql主从复制

来源:互联网 发布:js trimend用法 编辑:程序博客网 时间:2024/05/19 16:27

主(master)服务器IP:219.223.5.100,从(slave)服务器IP:219.223.5.103 
一、修改主服务器master 
root@theyun:~# nano /etc/mysql/my.cnf 
[mysqld]

server-id=103 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 
log-bin=mysql-bin //[必须]启用二进制日志 
二、修改从服务器slave 
root@theyun:~# nano /etc/mysql/my.cnf

[mysqld] 
log-bin=mysql-bin //[必须]启用二进制日志 
server-id=102 //[必须]服务器唯一ID,默认是1,一般取IP最后一段

三、重启两台mysql服务 : service mysqld restart;

四、赋予MySQL远程登录权限 
在主服务器master(102)上操作: 
mysql -uroot -proot123 
mysql > GRANT REPLICATION SLAVE ON . to ‘root’@’%’ identified by ‘password’; 
mysql > FLUSH privileges; 
# 其中.代表所有权限,root代表账号,password代表账户登录密码,’%’代表所有客户端都可以连接,或者写(219.223.5.103),修改后需要刷新权限。 
mysql> select user,host,password from user;

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

mysql> show master status;

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

五、配置从服务器 
mysql > mysql -uroot -proot123;

mysql> change master to 
-> master_host='219.223.5.102', #主服务器的IP 
-> master_user='root', #主服务器的连接用户名 
-> master_password='123456', #主服务器的连接密码 
-> master_log_file='mysql-bin.000001', #对应上面截图中的File 
-> master_log_pos=2336787; #对应上面截图中的Position 
启动从服务器同步进程:

Mysql>start slave; 
六、检查从服务器功能状态 
mysql> show slave status\G

如下,Slave_IO_running:Yes 
Slave_SQL_running:Yes 
则代表成功,否则任何其他状态都是失败 
到这里,主从配置完毕。

七、验证主从效果, 在主服务器上创建数据库yang 
mysql> create database yang; 
创建表student 
mysql> create table student (name varchar(256),age int,sex varchar(256)); 
表student 中插入记录 
mysql> insert into student values(‘wangming’,18,’f’); 
insert into student values(‘xiaobai’,20,’m’);

在从服务器上查看 
mysql> show databases; 
查看student表里的数据: select * from student;

中间遇到的一些问题: 
1.如果主从数据库的表结构不一致,会出现问题。 
2.Slave_SQL_Running: No mysql同步故障解决方法 
具体见下面链接: 
http://kerry.blog.51cto.com/172631/277414/

【在slave服务器配置单独库,单独表的同步?】 
在slave里编辑/etc/mysql/my.cnf中配置 
replicate-do-db = dashboard #想要同步的数据库名,如果有多个,请设置多次 
replicate-ignore-db = mysql #略过同步的数据库名,如果有多个,请设置多次 
replicate-ignore-table = mysql #略过同步的数据库的表,如果有多个,请设置多次 
replicate-wild-do-table=tablename% #同步某些表(可用匹配符)