|
回复 #201 jinguanding 的帖子
http://www.itpub.net/thread-1332291-1-1.html
可以的...若数据量不是特别大的话,可以使用mysqldump的方式完成,假设A机为当前运营的机器,B为新加入的机器
1>.对B机器安装好MySQL设置好server-id要与A机器的值不同,对于系统数据库mysql,建议先把账号等信息初始化成一致的;同时要创建一个具有权限:REPLICATION SLAVE的账号例如:
GRANT REPLICATION SLAVE ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
2 >.A机器上创建复制用的账号:
GRANT REPLICATION SLAVE ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
3>.对A机器的数据库进行备份(系统数据库不备份):
mysqldump -uxx -pxx --socket=xxx --single-transaction --master-data=1 --defaulut-character-set=xxx -B xx
4>.在 B机器上恢复A机器的数据库备份
mysql -uxx -pxx -socket=xx < xxx
5>.数据库备份恢复后,在B机器上用mysql命令行登录
先执行:show master status;(记住日志文件名称与位置值)
接下来执行:
show slave status\G
把值:master_og_file与master_log_pos都记住;
然后执行:
RESET SLAVE;
CHANGE MASTER TO MASTER_HOST='A机器的IP',MASTER_USER='之前创建的复制账号',MASTER_PASSWORD='复制账号的密码 ',MASTER_LOG_FILE='前一个语句查出来的',MASTER_LOG_POS='前一个SQL执行的日志位置 ',MASTER_PORT=A机器的端口号;
再执行行:START SLAVE;SHOW SLAVE STATUS\G(检查下是否正常)
6>.对于A机器对B机器的复制,只要执行:
CHANGE MASTER TO MASTER_HOST='B机器的IP',MASTER_USER='创建的复制账号',MASTER_PASSWORD='复制账号的密码 ',MASTER_LOG_FILE='B机器show mster status查出来的日志文件名称',MASTER_LOG_POS=B机器show mster status查出来的日志位置',MASTER_PORT=B机器的端口号;
再执行行:START SLAVE;SHOW SLAVE STATUS\G(检查下是否正常)
[ 本帖最后由 eugene_jin 于 2010-8-2 17:26 编辑 ] |
|