mysql中的复制,mysql数据单项同步,mysql主从库配备实践
参考资料:
官方手册5.x.chm
mysql异步、半同步+ssl配置
http://ouroboros.blog.51cto.com/2468486/790948
mysql master-slave (Replication)配置笔记
http://home.phpchina.com/blog-71776-170215.html
Mysql-5.5.3-m3 主从同步不支持master-host问题的解决办法[原创]
http://hi.baidu.com/adriannet/blog/item/c4e187ecc586b7c32e2e2100.html
MySQL slave 不能同步更新
http://hi.baidu.com/whq4557/blog/item/87c60251384e2e2243a75b37.html
环境:
主服务器master :
操作系统,win7;数据库版本,mysql version 5.5.23;Ip 192.168.0.13
从服务器slave :
操作系统,virtual box xp ;数据库版本,mysql version 5.5.23;Ip 192.168.0.29
两台机器可以相互访问。
配置:
一,两个服务器,建立测试库 表结构相同
CREATE DATABASE `dbsyn` /*!40100 CHARACTER SET utf8 COLLATE 'utf8_general_ci' */;
CREATE TABLE `user` (
`id` INT(10) NULL,
`name` (10) NOT NULL,
`age` INT(10) NULL,
`birthday` INT(10) NULL,
`pnumber` INT(10) NULL,
PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
二,修改主服务器配置
修改my.ini
在[mysqld]下面添加如下内容:
server-id = 1 #主机标示,整数
log_bin = /var/log/mysql/mysql-bin.log #确保此文件可写
read-only =0 #主机,读写都可以
binlog-do-db =test #需要备份数据,多个写多行
binlog-ignore-db=mysql #不需要备份的数据库,多个写多行
重启。执行show master status;记录File Positin 下一步用到。
三,修改从服务器配置
修改my.ini
server-id= 2
log_bin= C:\mysql\data
master-host=192.168.0.13
master-user=repl
master-pass=slavepass
master-port=3306
master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db =dbsyn #只复制某个库
replicate-ignore-db=mysql #不复制某个库
Mysql版本从5.1.7以后开始就不支持“master-host”,使用如下
[mysqld]
character-set-server = utf8
replicate-ignore-db = mysql
replicate-do-db = db
replicate-ignore-db = test
replicate-ignore-db = information_schema
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /home/mysql/data
四: 主库授予从库权限
在主服务器上为服务器设置一个连接账户。该账户必须授予REPLICATION SLAVE权限。如果账户仅用于复制(推荐这样做),则不需要再授予任何其它权限。
GRANT REPLICATION SLAVE ON *.*
TO 'repl'@'192.168.0.29' IDENTIFIED BY 'slavepass';
五:修改信息,开启slave
change master to
master_host='192.168.0.13',
master_user='repl',
master_password='slavepass',
master_log_file='具体文件',
master_log_pos=具体位置;
slave start;
相关命令
主库:
SHOW MASTER STATUS #主机运行,看日志导出信息,用于第五步修改信息
reset maste
#主机端运行,清除所有的日志
从库:
show slave status\G; 查看状态
start slave;开启同步
stop slave;停止同步
在从库上执行如下命令;#在线改变一些主机设置
change master to
master_host='192.168.0.13',
master_user='repl',
master_password='slavepass',
master_log_file='具体文件',
master_log_pos=具体位置;
slave start;
stop slave -- reset slave--start slave
将主库字段重新同步到从库。前提是主库没有执行reset maste