口水:第一次写博客,欢迎大家来拍砖。
最近项目中用mysql主从复制主要是为了实现读写分离、数据库备份、故障转移的需要,采用的是一主一从,配置比较简单。
自已在本机做测试
测试环境如下:
OS:win7
mysql: 安装两个版本的mysql ,一个是5.5.x(高版本做主) 一个是5.1.x.(从)
配置文件 win下my.ini linux下:my.conf
1. 配置主库
#配置主从数据库
server-id=1
#主从复制是通过二进制文件来进行,所以要开启日志功能
log-bin=mysql-bin
#主机,读写都可以
read-only=0
#需要备份数据,多个写多行
binlog-do-db=core
#不需要备份的数据库,多个写多行
binlog-ignore-db=test
binlog-ignore-db=mysql
2. 配置从库
#主从配置
server-id=2
log-bin=mysql-bin
#主机地址
master-host=127.0.0.1
master-user=slave1
master-password=slave1
master-port=3309
#如果从服务器发现主服务器断掉,重新连接的时间差(秒)
master-connect-retry=60
#只复制某个库
replicate-do-db=core
#不复制某个库
replicate-ignore-db=mysql
3. 设置权限
给主数据库授予一个可以进行复制的用户
GRANT replication slave ON *.* TO 'slave1'@'%' IDENTIFIED BY 'slave1';
4. 启动从库复制
mysql>slave start;
myslq>slave stop;
5. 查看复制状态
主库:mysql>show master status\G(注意,不用加分号)
从库:mysql>show slave status\G
从库设置主库信息
change master to
> master_host='master_ip',
> master_user='user',
> master_password='pwd',
> master_port=3307,
> master_log_file='mysql-bin.000020',
> master_log_pos=135617781;
6. 解决未同步的可能出现的问题
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1
出现过的问题:
a. character 的问题 是mysql client的问题,需要把客户端的character设置和server 一样
7. 如果出现复制错误,从服务器的错误日志(HOSTNAME.err)中也会出现错误消息。
以上配置测试通过,有问题欢迎一起来讨论