mysql数据库主从复制配置

1,需求分析
        在现如今网站高并发的情况下,除了实现网站服务器的负载均衡,也需要配置数据库的主从复制从而实现读写分离,以减轻数据库压力,提高网站响应速度。主从服务器利用MySQL的二进制日志文件,实现数据同步。二进制日志由主服务器产生,从服务器响应获取同步数据库。
2,环境:
        主数据库:宿主机 windows + mysql
        从数据库:virtualbox虚拟机 + ubuntu18.04 + mysql
3,环境测试
        需要宿主机与虚拟机互相ping,看能否ping通,这个会决定主从复制的环境是否能ping通(如果出现主机可以ping通虚拟机,而虚拟机无法ping通宿主机的情况下,可以考虑关闭宿主机防火墙后再试,至少我是这么解决的),记录下宿主机的ip地址,
4,宿主机配置
    1)打开mysql的配置文件mysql.ini,在 [mysqld]下添加

server-id=1  #注意此处id需唯一,不可和从数据库的相同#
log-bin-index=master-bin.index

        找到行 log-bin=mysql-bin取消掉行前注释

    2)添加从库用来连接主库的用户,并设置权限

    create user;
    grant REPLICATION slave *.* to 'reple'@'192.168.1.*' identified by '123456'; 
    flush privileges; #别忘了这一句,我就是忘了导致配置失败#

5,配置完成后重启数据库服务器,登录后执行命令show master status查看主服务器配置状态。这里写图片描述
        记录下此处的file列的内容以及position列的内容,配置从服务器需要用到
6,配置从服务器
        打开配置文件my.cnf(我的在 /etc/mysql/my.cnf),在[mysqld] 模块下添加(如果没有则自己添加):

server-id=2  #注意不能和主数据库的server-id相同#
relay_log_index=slave-relay-bin.index
relay-log=slave-relay-bin

7,保存后退出重新启动数据库服务
8,命令行登录数据库后,执行如下语句:

change master to 
master_host='192.168.0.125'           #注意此处IP换位你自己主数据库所在环境的IP地址#
master_user='repl',                   #此处将repl换为你自己创建的用来连接主数据库的用户名#
master_password='123456',             #此处将123456换为你自己创建的用来连接主数据库的用户名对应的密码#
master_log_file='mysql-bin.000001'    #换成你执行 show master status 后看到的file那一列的内容#
master_log_pos=2583;                  #换成你执行 show master status 后看到的Position那一列的内容#

9,开启从库:start slave
10,查看从库状态: show slave status\G;
        当看到 Slave_IO_Running 和Slave_SQL_Running的值都为false 时则表示配置成功
12,此时在主库创建个表看看从库是否有自动创建数据新表吧。。

create table test(
    id auto_increment primary_key,
    name varchar(10);
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值