Chinaunix首页 | 论坛 | 博客
  • 博客访问: 114459
  • 博文数量: 17
  • 博客积分: 431
  • 博客等级: 下士
  • 技术积分: 172
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-13 14:45
文章分类

全部博文(17)

文章存档

2012年(1)

2011年(16)

分类: Mysql/postgreSQL

2011-10-10 10:29:45

1:grant slave privileges on test.* to mirror@master identified by "123";
2:Master:/etc/mysql/my.cnf 
a)设置需要同步的数据库
b)binlog
c)serverid=1
  重启Master
3:Slave:/etc/mysql/my.cnf
a)serverid=2
b)master的host,user,password
c)设置需要同步的数据库
#d)开binlog
  重启Slave

4:Master:锁表,mysqldump导出要镜像的库,show master status,取到bin_log和bin_log_pos值,解锁
4':Master:锁表,flush tables,flush logs,cp -a 数据目录 /backup,解锁
5:Slave:将备份文件传到丛库服务器,将备份文件导入到slave
6:show slave status,确认状态,发现slave_io_running和slave_sql_running都是No
7:change master to ...


查看是否同步 可以在slave上 键入 show slave status\g; 查看是否有错误,如果报错 则需要进行手动同步即可排除错误,下面是配置文档,可能有些出处

mysql主从同步需要两台服务器,分别安装mysql服务。



root@alex:~# apt-get install mysql-server

安装时输入mysql用户名密码

root@alex:~#mysql -uroot -p     \\-u 用户名 –p用户密码

mysql> create database abc;       \\建立数据库

mysql> quit

root@alex:~# vim /etc/mysql/my.cnf

server-id               = 1                    \\  给服务器分配一个独一无二的ID编号;

log_bin                 = /var/log/mysql/mysql-bin.log   \\启动二进制日志,设置日志存放位置

expire_logs_days        = 10                   \\二进制日志自动删除的天数。默认值为0,表示没有自动删除。设置完这个参数之后需要执行flush logs

max_binlog_size         = 100M     \\二进制日志文件的最大长度,当超过这个最大长度之前,MySQL服务器会自动提供一个新的二进制日志文件接续上。

binlog_do_db            = abc   要同步的数据库

binlog_ignore_db        = ***   不要同步的数据库

root@alex:~#mysql -uroot -p

mysql> grant replication slave,reload,super on *.* to 'root'@'192.%' identified by 'debian';                           更新  超权限   用户.数据库          为账户给定一个密码

            授予slave服务器有复制操作权利。

mysql> flush tables with read lock;         \\所表 防止发生意外

mysql> quit

root@alex:~# mysqldump -uroot -p abc > abc.sql   \\备份数据库

root@alex:~#mysql -uroot -p

mysql> unlock tables;                       \\解锁,因为不解锁,从机无法同步数据。

mysql> show master status;  \\查看主服务器数据库情况

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000004 |      831 | abc          |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

 

从:

root@alex1:~# apt-get install mysql-server

安装时输入mysql用户名密码

root@alex1:~# vim /etc/mysql/my.cnf

server-id               = 2             \\设定主机编号  应与master不同

master-host             = 192.168.108.102          \\设定主服务器IP

master-user             = root                 \\设定登录主机服务器用户

master-password         = debian               \\设定登录主机服务器密码

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

expire_logs_days        = 10

max_binlog_size         = 100M

replicate-do-db         = abc             \\要同步的数据库

master-connect-retry    = 30         \\与主服务器链接重试时间

root@alex1:~# mysql –uroot –pdebian

mysql> show databases;

mysql> create database abc;

mysql>source /root/abc.sql;

root@alex1:~# show slave status\G;  \\查看slave服务器状态 \G列表形式

分别把主、从服务器mysql服务重新启动

root@alex:~# service mysql restart

root@alex1:~# service mysql restart

测试:

在主mysql服务器中添加表

mysql> create table addressbook(username varchar(20),password varchar(40)) TYPE=MyISAM;

mysql> insert into addressbookusername,passwordvalues (‘zhangsan’,’ 13901234561’);

mysql> insert into addressbookusername,passwordvalues (‘lisi’,’13801234567’);

mysql> quit

在从mysql服务器中查看表

mysql> show databases;

mysql> use abc;

mysql> select * from addressbook;

如有张三和李四用户 表示同步成功

 

注:如远程登录mysql 需把my.cnfbind-address 注释即可。

如果同步二进制文件不一样 需要进行手动同步 才可清除错误  slave IO =no  sql = no

先查看主的二进制文件名和Position

slave服务器上执行手动同步:

mysql> change master to 

> master_host='master_ip',

> master_user='user', 

> master_password='pwd', 

> master_port=3306, 

> master_log_file='mysql-bin.000020', 

> master_log_pos=135617781;

1 row in set (0.00 sec)

mysql> slave start;

1 row in set (0.00 sec)

再次查看slave状态发现:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Seconds_Behind_Master: 0

阅读(4234) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~