分类: LINUX
2010-12-30 19:14:47
A: 192.168.0.1(主数据库)
B: 192.168.0.2(从数据库)
1.vim /etc/my.cnf
server-id = 1
log-bin = /home/mysql/log/mysql-bin
max_binlog_size = 1073741824
binlog-ignore-db=mysql
binlog-do-db=cactidb
2.重启数据库
binlog-do-db=需要备份的数据库名,如果备份多个数据库,重复设置这个选项。
binlog-ignore-db=不需要备份的数据库名,如果有多个数据库,重复设置这个选项。
注意:主库的server-id必须为1。
配置同步权限:
在主服务器A上为从服务器B建立一个用户:
mysql>GRANT REPLICATION SLAVE ON *.* TO backup@'192.168.0.2' IDENTIFIED by 'backuppass';
这个权限表示,这个backup账号只能由从备份机192.168.0.2访问只能用来进行备份操作
1. vim /etc/my.cnf
server-id=2
relay_log = /home/mysql/log/mysql-relay-bin
max_relay_log_size = 1073741824
replicate_do_db=cactidb
replicate-ignore-table=cactidb.settings
eplicate-ignore-table=cactidb.poller
replicate-ignore-table=cactidb.poller_command
replicate-ignore-table=cactidb.poller_output
replicate-ignore-table=cactidb.poller_reindex
replicate-ignore-table=cactidb.poller_time
replicate-do-db=要同步的数据库,如果备份多个数据库,重复设置这个选项。
replicate-ignore-table=不同步的表,如果有多个表,重复设置这个选项。
注意:如果有多个从库,从库的server-id不能相同。
第一步,导出主库A
1、锁表:
mysql>flush tables with read lock;
2、记住日志文件( File)和日志位置(Position)
mysql>show master status;
| File | Position |
| mysql-bin.000037 | 68870589 |
3、导出数据库:mysqldump cactidb > cactidb.sql
4、解锁:
mysql>unlock tables
第二步,导入从库B
1、导入数据库:mysql cactidb < cactidb.sql
2、停止同步:mysql>slave stop
3、设置同步信息:
mysql>CHANGE MASTER TO
MASTER_HOST='192.168.0.1',
MASTER_USER='backup',
MASTER_PASSWORD='backuppass',
MASTER_PORT=3306,
MASTER_LOG_FILE=mysql-bin.000037',
MASTER_LOG_POS=68870589,
MASTER_CONNECT_RETRY=10;
这么多参数,很难记住吧,不用记,用以下命令可以搞定
mysql>help change master to;
登录从服务器B,输入如下命令:
mysql> show slave status\G;
会得到类似下面的列表:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Slave_IO_Running:为No,则说明IO_THREAD没有启动,请执行slave start Slave_SQL_Running:为No,则复制出错,查看Last_error字段排除错误后执行slave start
查看Slave_IO_State字段
空:复制没有启动
Connecting to master:没有连接上master
Waiting for master to send event:已经连上
chinaunix网友2010-12-31 19:06:14
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com