• MySQL一主多从配置和读写分离配置


    一、一主多从配置

    此次操作实现的是一主两从的方式。主服务器slave2(2.100),从服务器slave2-1(2.107),slave2-2(2.108);
    第一:准备主数据库
        1. 在不同的机器上分别建立slave2(主库) 和需要进行备份的从库 slave2-1 和slave2-2;
            设置各个数据库的server-id,同时开启各自的binlog日志,并启动mysql数据库
        2. 在主库slave2上创建进行远程访问的用户和密码
            2.1 #>mysql -uroot -proot
            2.2 mysql> create user mysync;
                // * 注意 mysync 用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为q123456。
                // * 说明一下192.168.0.%,这个配置是指明mysync用户所在服务器,这里%是通配符,表示192.168.2.0-192.168.2.255的Server都可以以mysync用户登陆主服务器。当然你也可以指定固定Ip。
                // * mysql> GRANT REPLICATION SLAVE ON *.* TO 'mysync'@'192.168.2.%' IDENTIFIED BY 'q123456'; 此处@后面跟了ip地址,表示为指定ip地址段的服务器可以登录主服务器
            2.3 mysql> GRANT REPLICATION SLAVE ON *.* TO 'mysync'@'%' IDENTIFIED BY 'q123456';
        3. 获取主库上binlog的位置
            mysql> show master status;
            记住显示的 File | Position 的值
            // *我此次的 file名是:slave1-bin.000001,Position值为:825

    第二步:导出主服务器Mysql库中的数据
        1.    导出主服务器上test数据库的数据
            #> mysqldump -uroot -proot test > /test_bnk.txt;
        2.     将导出的数据库文件传递到从库所在的服务器,并导入从库的数据库
            #> scp /test_bnk.txt root@192.168.2.107:/
            #> scp /test_bnk.txt root@192.168.2.108:/
            #> mysql -uroot -proot test < /test_bnk.txt;
            // *此命令在107和108服务器上分别执行
            
        3.     从服务器初始化配置
            3.1 在107服务和108服务器上分别执行
                #>mysql -uroot -proot
            3.2 停止slave服务
                mysql>stop slave;
            3.3 重置slave日志
                mysql>reset slave;
            3.4    重置master日志
                mysql>reset master;
            3.5 设置从库对应的主库配置
                mysql>
                    change master to master_host='192.168.2.100',
                    master_user='mysync',
                    master_password='q123456',
                    master_log_file='slave2-bin.000001',
                    master_log_pos=804;
            3.6 重新启动slave服务
                mysql> start slave;
            3.7 验证从库的状态
                mysql> show slave status G;
                如果Slave_IO_Running 和 Slave_SQL_Running都为 Yes,而且没有出现error的字样,并验证Master_%等相关配置是否正确
                
    第三步:登录数据库,在slave2上进行增删改查操作,然后在 slave2-1和slave2-2上进行验证.

     

    二、 读写分离

    参考:https://www.cnblogs.com/fyc119/p/7529902.html

     

  • 相关阅读:
    javascript判断页面第一次加载还是刷新操作【转】
    vs 2008 不能切换到设计视图的解决办法
    sql update 触发器 获得被update的行的信息
    方便winform中的数据验证,制作一个使用正则表达式验证数据的复合控件
    求一个n选x的算法
    在html链接里执行js和使用标签事件执行的不同
    咸吃萝卜淡操心:导入xlsx文件表格新增数据
    我亲爱的你,有两副面孔:表格末尾添加新内容
    Torture:跨域访问的功臣:window.name
    那么轻,那么重:图片下载与压缩包下载
  • 原文地址:https://www.cnblogs.com/maxigang/p/9115392.html
Copyright © 2020-2023  润新知