MySQL5.5多主一从备份By Windows

多台主机的数据库备份到一台从机上,但是多台主机的库都叫一个名字,所以从机安装多个MySQL来区分.起始本质上还是普通的主从备份

1.前期准备

1.主从数据库版本一致.
2.主机需要备份的数据库及表要提前在从机上建好(之后主机新建表从机也会同步).如果需要历史数据得手动同步(导入导出sql).

2.从机安装多个MySQL

1.下载MySQL解压版(我用的是5.5.15,版本不一样的话有些指令会有偏差):官网下载地址
2.解压到多个路径.例如↓.(我机子已用3306)
…主机:D:\Program Files\mysql3307
…从机:D:\Program Files\mysql3308
3.修改my.ini文件.
…5.5.15的压缩版解压后是没有my.ini文件的,我是从5.5.15的安装版里拷贝过来的.修改以下属性

/* mysql3307目录下,主机参考 */
[client]
port=3307 

[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3307

#MySQL存放目录
basedir="D:/program files/mysql3307/"

#MySQL数据存放目录. 这里建议直接跟在上面的basedir后面加个data,我自己多加了一层别的目录就不太好使,弄半天弄成这样才好使.
datadir="D:/program files/mysql3307/data/"

#主服务器备份配置
#主服务器id(这个id是主从备份关系网用的,所有参与到主从备份的机子,这个id不能重复)
server-id=3307
#二进制文件存放路径(主机存放自己操作步骤的文件,用来给从机抄作业的).这里建议手动将目录建好及:mysql3307后的mysql-bin目录
log-bin=D:/Program Files/mysql3307/mysql-bin/mysql-bin
#二进制文件单本上线大小
max_binlog_size = 500M
#二进制日志的缓存区上线大小
max_binlog_cache_size = 500M
#二进制文件保存时间
expire_logs_days = 15
#只允许从机同步的数据库(注掉不填则默许所有都行)
#binlog-do-db=route_user_data
#binlog-do-db=jkdata
#不准同步的数据库
#binlog-ignore-db=jzsoft

/* mysql3308目录下,从机参考 */
[client]
port=3308

[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3308

#MySQL存放目录
basedir="D:/program files/mysql3308/"

#MySQL数据存放目录. 这里建议直接跟在上面的basedir后面加个data,我自己多加了一层别的目录就不太好使,弄半天弄成这样才好使.
datadir="D:/program files/mysql3308/data/"

#从服务器备份配置
#从服务器id(这个id是主从备份关系网用的,所有参与到主从备份的机子,这个id不能重复)
server-id=3308
#二进制文件存放路径(从主那里抄过来存放的位置).
#这里必须手动将目录建好及:mysql3307后的mysql-bin目录
log-bin=D:/Program Files/mysql3308/mysql-bin/mysql-bin
#二进制文件单本上线大小
max_binlog_size = 500M
#二进制日志的缓存区上线大小
max_binlog_cache_size = 500M
#二进制文件保存时间
expire_logs_days = 15
#选择同步的数据库(前提是主允许同步的数据库)
replicate-do-db=route_user_data
replicate-do-db=jkdata

4.安装MySQL成系统服务
以管理员权限打开命令行窗口分别执行.mysqld 命令不能用的需要先配置环境变量.

mysqld install mysql3307 --defaults-file="D:\Program Files\mysql3307\my.ini"

(意思是:安装MySQL服务,服务名为:mysql3307,应用的配置文件为"D:\Program Files\mysql3307\my.ini" )
成功后返回:Service successfully installed.

mysqld install mysql3308 --defaults-file="D:\Program Files\mysql3308\my.ini"

(意思是:安装MySQL服务,服务名为:mysql3308,应用的配置文件为"D:\Program Files\mysql3308\my.ini" )
成功后返回:Service successfully installed.

此时到服务里能看见刚刚创建的两个服务,但是是未启动的.如果发现刚刚的操作有误,想删掉服务则可以执行.例如删掉mysql3307如下

#SC delete 服务名
SC delete mysql3307   

至此服务安装完成,可以启动服务了,命令行分别启动刚刚安装的服务

#停止服务命令 net stop 服务名
net stop mysql3307  
#启动服务命令 net stop 服务名
net start mysql3307  

看看MySQL安装成功没有,分别登录下看看,跟着步骤走下来的是没有密码的.
确认服务正常后修改下密码.
cmd命令MySQL的bin目录下登录,账号root,没有密码

D:\Program Files\mysql3307\bin>mysql -uroot
#下面的123456换成你的
set password for 'root'@'localhost' = password('654321');

3.主从同步

1.主机给从机开个账号
登录主机的MySQL后给指定IP127.0.0.1下的从机开个账号:slave,密码:654321.(IP和密码自己换)

grant replication slave,reload,super on *.* to slave@127.0.0.1 identified by '654321';  

2.查看并记录主机备份日志文件.记下file和position,一会从机会用得到

 show master status;

在这里插入图片描述
3.从机同步
登陆从机,设置登陆主机的信息

D:\Program Files\mysql3308\bin>mysql -uroot -p123456

stop slave; change master to master_host='127.0.0.1',master_port=3307,master_user='slave',master_password='654321',master_log_file='mysql-bin.000001',master_log_pos=405;

stop slave; 	# 停止同步线程,主意带分号
start slave;  	# 启动同步线程,主意带分号
master_host:       主服务器的IP
master_port:		端口号(不填则为默认3306)
master_user:       主服务器上用来同步的用户名
master_password:   用户的密码
master_log_file:   主服务器二进制日志文件的名称,填写查看主服务器的master状态时显示的File的值
master_log_pos:    日志的位置,填写查看主服务器的master状态时显示的Position的值

启动同步线程

start slave;

查看同步状态,两个YES说明OK了,如果不是,则看往下看错误日志.

show slave status\G

在这里插入图片描述
都ok以后就可以去主机更新下数据试试喽.
如果并非都是yes可以去datadir="D:/program files/mysql3308/data/"目录下查看错误信息.err结尾的.
百度不出来错误原因结果,可以试试下面的跳过一次事务的语句

mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值