首页 > 代码库 > mysql-数据库-多机配置

mysql-数据库-多机配置

一主多从配置

环境:

        主机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)上:

 技术分享

     

    主机B(slave)上:

 技术分享 


     主机C(slave)上:

 技术分享


三. 主服务器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‘;

 技术分享 


    show master status;

 技术分享


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

     主机B(slave)上: 

 技术分享


 技术分享


     主机C(slave)上:

 技术分享


 技术分享


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

      主A:

 技术分享


      从B:

 技术分享


      从C:

 技术分享


   

多主一从配置

   环境:

           主机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:

 技术分享 


     主二B:

 技术分享


二. 授权给从服务器

     主一A:

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

 技术分享

     

    主二B:

 技术分享


三. 编辑从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

 技术分享  


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

 技术分享


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

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

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

 技术分享


 技术分享

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

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

 技术分享


 技术分享

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

     主一创建db1:

 技术分享  


     主二创建db2:

 技术分享


     从157登录查看:

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

 技术分享


     从100登录查看:

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

 技术分享


本文出自 “一马踏平川” 博客,请务必保留此出处http://huangzp.blog.51cto.com/12434999/1896920

mysql-数据库-多机配置