一主多从配置

环境:

        主机A( huangzp2):172.16.115.157

        主机B( huangzp3):172.16.115.100

        主机C( huangzp4):172.16.115.87

        说明:多台从服务器为一台主服务器提供备份功能;仍然主从配置;至少需要3台机器


一. 3台服务器上安装 mysql mysql-server

      yum install mysql mysql-server -y


二. 修改配置文件/etc/my.cnf,并重启

     主机A(master)上:

 wKioL1iezY-RHHE4AAAhBZTEbGs804.png

     

    主机B(slave)上:

 wKioL1iezaPytoWnAAAf3NwiR6M868.png 


     主机C(slave)上:

 wKiom1ieza_QZGONAAAgFvyJVG4932.png


三. 主服务器A上,给多台从服务器(主机B和主机C)授权replication slave

     grant replication slave on *.* to 'silen'@'172.16.115.100' identified by '123456';

     grant replication slave on *.* to 'silen'@'172.16.115.87' identified by '123456';

 wKiom1iezb_R5rRTAAAiCU4alck645.png 


    show master status;

 wKioL1iezcqw8xtHAAAVqkgnL8o990.png


四. 从上写入master.info信息,并开启slave,以及查看slave状态

     主机B(slave)上: 

 wKioL1iezdjBvbDRAAAXK7F8I4o648.png


 wKiom1iezdnhONq_AABAIm2_SMo858.png


     主机C(slave)上:

 wKioL1iezfTTqTqbAAAXBEWaSWc757.png


 wKiom1iezfSDrOOjAAA-_p0ozrA181.png


五. 主服务器上创建aa,查看从服务器上也同步创建了db1库

      主A:

 wKiom1iezguibiWcAAAaoj6wkko964.png


      从B:

 wKioL1iezhrweyO4AAAQX08tEik467.png


      从C:

 wKioL1ieziWAbhf-AAAQT3Wr6KY155.png


   

多主一从配置

   环境:

           主机A( huangzp2):172.16.115.157

           主机B( huangzp3):172.16.115.100

           主机C( huangzp4):172.16.115.87


          说明:不管是主从、主主、一直多从,如果主有多台数据库,则需要跟多的从服务器来备份,资源开销比较大;多主一从,一台从服务器为多台主服务器提供备份,也存在问题,就是一台从服务器上不能同时开两个mysql进程(mysqld_safe只能开启一个数据库进程),解决:不能用mysqld_safe,而是需要使用mysqld_multi,一台服务器提供多个mysql进程


一. 3台机器yum install -y mysql mysql-server,并修改配置文件/etc/my.cnf

     主一A:

 wKiom1ie013iPSE2AAAg3i7F2yk023.png 


     主二B:

 wKiom1ie02ni-BY2AAAfXqPFFZk691.png


二. 授权给从服务器

     主一A:

     grant replication slave on *.* to 'silen'@'172.16.115.87' identified by '123456';

 wKioL1ie03WQ-LJLAAAnAowVWoU982.png

     

    主二B:

 wKiom1ie04XSqrb3AAAkLtbNbFI369.png


三. 编辑从C服务器配置文件vim /etc/my.cnf

[mysqld_multi]

mysqld=/usr/bin/mysqld_safe

mysqladmin=/usr/bin/mysqladmin

user=root

password=123456

log=/tmp/multi.log


[mysqld157]

port=3306

datadir=/var/lib/mysqla

pid-file=/var/lib/mysqla/mysqld.pid

socket=/var/lib/mysqla/mysql.sock

user=mysql

server-id=87


[mysqld100]

port=3307

datadir=/var/lib/mysqlb

pid-file=/var/lib/mysqlb/mysqld.pid

socket=/var/lib/mysqlb/mysql.sock

user=mysql

server-id=87


说明:

  • 添加[mysqld_multi]模块,调用的还是mysqld_safe

  • mysqladmin修改密码的工具存放的位置

  • 以root身份登录

  • 定义一个日志文件

  • 添加和主一通信模块[mysql157],157数字自定命名

  • 指定端口为3306

  • 数据存放目录

  • pid文件目录

  • 套接字目录

  • 登录的用户

  • server-id

  • 除了server-id相同外(因为在不同组中,id并没有冲突),其他和主二不能相同


四. 从服务器上,初始化mysqla和mysqlb,创建相应目录,并修改属主为mysql,用到/usr/bin/mysql_install_db

     /usr/bin/mysql_install_db --datadir=/var/lib/mysqla

     /usr/bin/mysql_install_db --datadir=/var/lib/mysqlb

     

     chown -R mysql /var/lib/mysqla/

     chown -R mysql /var/lib/mysqlb/


五. 启动mysql,用mysql_multi,需指定配置文件和模块

     mysqld_multi --defaults-file=/etc/my.cnf start 157

 wKiom1ie07KiVr6XAABHstbHGmw085.png  


     mysqld_multi --defaults-file=/etc/my.cnf start 100

 wKioL1ie08HwPkPLAABApnXriWM113.png


六. 登录mysql,需指定端口号和套接字文件

     登录mysql157,并添加和主一通信的master.info,开启salve,查看状态:

     mysql -P 3306 -S /var/lib/mysqla/mysql.sock 

 wKiom1ie09SxU7QeAAAXq8FNgNY763.png


 wKioL1ie09SgEEzXAABAWuJm_Bc862.png


     登录mysql100,并添加和主二通信的Master.info,开启salve,查看状态:

     mysql -P 3307 -S /var/lib/mysqlb/mysql.sock 

 wKiom1ie0_bja6i7AAAXMui06dY512.png


 wKioL1ie0_eSpNtfAABAguGfFTY307.png


七. 主一和主二创建分别创建数据库db1和db2,从服务器分别登录157、100能够显示已同步创建

     主一创建db1:

 wKiom1ie1CjyMiPKAAAbhvJLddg463.png  


     主二创建db2:

 wKioL1ie1Daz_wDiAAAbhAao7bo777.png


     从157登录查看:

     mysql -P 3306 -S /var/lib/mysqla/mysql.sock

 wKiom1ie1EiyXQOhAAAQUw9swJo586.png


     从100登录查看:

     mysql -P 3307 -S /var/lib/mysqlb/mysql.sock

 wKiom1ie1FbygvynAAAP_K96dtQ553.png