`

主从服务器配置

 
阅读更多

安装环境:
主服务器::192.168.1.10
从服务器::192.168.1.12
操作系统:windows xp
MYSQL 版本为5.0.27
备份数据库:backup


1、主服务器的my.ini配置
#启用二进制日志功能。
log-bin=mysql-bin
#服务器编号。
server-id = 1
#只把给定数据库里的变化情况记入二进制日志文件。(如果对多个数据库保存日志,那么可以用多行来表示。)
binlog-do-db=backup
#不把给定数据库里的变化情况记入二进制日志文件。(如果忽略多个数据库的日志保存,那么可以用多行来表示。)
binlog-ignore-db=mysql
#每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法,但效率最低。
#默认设置是n=0,意思是由操作系统来负责二进制日志文件的同步工作。
sync_binlog=1

 

2、从服务器的my.ini配置
#服务器编号(不可以跟主服务器的编号相同。)
server-id = 2
log-bin=slave-bin
#启用从属服务器上的日志功能,使这台计算机可以用来构成一个镜像链(A->B->C)
log-slave-updates
#从库是否只读,0表示可读写,1表示只读
read-only=1
#只复制某个表
#replicate-do-table=tablename
#只复制某些表(可用匹配符)
#replicate-wild-do-table=tablename%
#只复制某个库(如果对多个数据库做同步,那么可以用多行来表示。)
replicate-do-db = backup
#只复制某些库
#replicte-wild-do-db=dbname%
#不复制某个表
#replicate-ignore-table=tablename
#不复制某些表
#replicate-wild-ignore-table=tablename%
#不复制某个库(如果忽略多个数据库的同步,那么可以用多行表示。)
replicate-ignore-db=mysql
#复制完的sql语句是否立即从中继日志中清除,1表示立即清除
relay-log-purge = 1
#从服务器主机,用于show slave hosts生成从库清单
report-host=slave-1
#即不管发生什么错误,镜像处理工作也继续进行
slave-skip-errors=all
#每经过n次日志写操作就把日志文件写入硬盘一次(对日志信息进行一次同步)。n=1是最安全的做法,但效率最低。
#默认设置是n=0,意思是由操作系统来负责二进制日志文件的同步工作。
sync_binlog=1

 

3、创建用户,授权slave
在主服务器,执行如下操作:
GRANT REPLICATION SLAVE ON *.* TO backup@192.168.12 IDENTIFIED BY '123456';

 

4、完成slave的配置
(1)在主服务器中执行如下操作:
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)
显示主库状态,注意记下当前二进制日志文件名和position
mysql> show master status;
+------------------+----------+--------------------+-----------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------------+-----------------------+
| mysql-bin.000001 |   98 | backup          | mysql              |
+------------------+----------+--------------------+-----------------------+
1 row in set (0.00 sec)
将主服务器C:/Program Files/MySQL/MySQL Server 5.0/Data/下的内容打包复制到从服务器C:/Program Files/MySQL/MySQL Server 5.0/Data/下,执行从库的初始化。当然,初始化也可以使用mysqldump来完成。(如果日志是第一次写的,可以忽略这步。)

 (2)在从服务器中执行如下操作:
mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.1.10',
    -> MASTER_USER='backup',
    -> MASTER_PASSWORD='123456',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=98;
Query OK, 0 rows affected (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
至此配置基本完成,在主服务器解开table的锁定
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

(3)测试slave的运行情况:
    在从服务器中执行如下操作:
    mysql>show slave status /G;
    如果下面三项显示为这样,则表示已经启动正常。
Slave_IO_State: Waiting for master to send event
    Slave_IO_Running: Yes
Slave_SQL_Running: Yes

 

5、其它
(1)主服务器上的相关命令
show master status
show slave hosts
show logs
show binlog events
purge logs to ‘log_name’
purge logs before ‘date’
reset master(老版本flush master)

(2)从服务器上的相关命令
slave start
slave stop
SLAVE STOP IO_THREAD //此线程把master段的日志写到本地
SLAVE start IO_THREAD
SLAVE STOP SQL_THREAD //此线程把写到本地的日志应用于数据库
SLAVE start SQL_THREAD
reset slave
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
load data from master
show slave status(SUPER,REPLICATION CLIENT)
CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //动态改变master信息
PURGE MASTER [before ‘date’] //删除master端已同步过的日志

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics