一,主从复制 读写分离

    环境 三台linux 虚拟机 centos7

        master 主服务器   主机名 mysql_m  nat 网卡 地址 192.168.100.20

        slave  从服务器  主机名 mysql_s1  nat 网卡  地址 192.168.100.10

        slave  从服务器  主机名 mysql_s2  nat 网卡  地址 192.168.100.30

        全部禁用selinux   永久关闭防火墙

       配置 /etc/hosts 解析文件如下

          192.168.100. 10    mysql_m

          192.168.100.20   mysql_s1

          192.168.10.100.30    mysql_s2

 1, 安装NTP  建立主从间的时间同步

      主从服务器上 安装 ntp

         yum  install  -y  ntp

      主服务器上修改 配置文件  vi  /etc/ntp.conf

         添加       server 127.127.1.0                    //本地是时钟源//

                    fudge 127.127.1.0 stratum 8          //设置时间层级为8(限制在15内)

       启动时钟服务

          systemctl   start  ntpd

       从服务器上手动同步一次

           ntpdate 192.168.100.20

2,  yum 安装 mysql

      主从服务器都安装 mariadb

         yum -y install mariadb  mariadb-server

         mysql --version         //查看版本

         systemctl start mariadb     //启动服务

         mysql -uroot           //空密码进入

         用 数据库中修改密码的方法修改root 密码

 3,  主从服务器修改配置文件重启服务

      主服务器修改配置文件

         vi  /etc/my.cnf

        添加内容如下

          [mysqld]

          server-id=1

          log-bin=mysql-bin       //主服务器日志文件名

          log-slave-updates=true      //从服务器更新日志

        重启数据库服务

          systemctl restart mariadb

      从服务器修改配置文件

        vi  /etc/my.cnf

        添加内容如下

          [mysqld]

          server-id=2

          relay-log=mysql-relay

        重启数据库服务

          systemctl restart mariadb

 主服务器mysql 添加用户权限 查看日志节点

       进入mysql 中

         show variables like 'server_id';          //查看数据库中server-id 显示

         grant replication slave on *.* to 'myslave'@'192.168.10.%' identified by '123.com';

                             //添加用户权限 用于slave 从服务器访问

         flush privileges;        //刷新权限

         show master status;      //查看master 状态 注意日志名称和节点位置的数字

  5, 从服务器mysql 配置 master 参数

      进入从服务器mysql 中

        change  master  to  master_host='192.168.10.29', master_user='myslave', master_password='123.com',master_log_file='mysql-bin.000002', master_log_pos=477;

           //在数据库中配置 master 主服务器参数 参照主服务器的日志名和节点位置

        start  slave;        //启动slave 功能

        show slave status\G;       //查看状态

出现两个 yes 即为成功

做读写分离先上传所需资源

全部禁用selinux   永久关闭防火墙

   amoeba 调度器配置

      修改 /etc/hosts 文件添加如下解析记录

          192.168.10.29   mysql_m

          192.168.10.39   mysql_s1

          192.168.10.49   mysql_s2

          192.168.10.100  amoeba

     1,安装jdk 配置环境 并验证

         chmod +x jdk-6u14-linux-x64.bin            //赋予文件权限

         ./jdk-6u14-linux-x64.bin                    //执行jdk 的 bin 文件

         mv jdk1.6.0_14/  /usr/local/jdk1.6           //移动文件并改名

        修改文件 /etc/profile 添加环境变量

           vi /etc/profile

         export JAVA_HOME=/usr/local/jdk1.6

         export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib

         export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$JAVA_HOME/bin:$PATH

         export AMOEBA_HOME=/usr/local/amoeba

         export PATH=$PATH:$AMOEBA_HOME/bin

         source /etc/profile       //让文件修改立即生效

         java -version            //验证jdk 环境

 2,安装 amoeba

           mkdir /usr/local/amoeba                //创建amoeba 文件夹               

           tar zxf amoeba-mysql-binary-2.2.0.tar.gz  -C   /usr/local/amoeba

           chmod -R 755  /usr/local/amoeba

         验证安装

           /usr/local/amoeba/bin/amoeba

出现上面显示内容即为成功

 3, 修改 amoeba 配置文件   amoeba.xml 和 dbServers.xml

            cd /usr/local/amoeba/

            vi  conf/amoeba.xml

如上图部分修改划线地方即可  如果被注释掉  去掉注释

如上图修改划线部分即可  如有备注释的  去掉注释

  4,启动服务

            cd  /usr/local/amoeba/bin  

            ./amoeba   start  &

            回车后 使用 netstat  -anpt | grep  java 查看

  

       5,测试

          首先需在三个mysql (一主两从) 上分别开放amoeba 访问权限(主从数据库都要执行)

            grant  all  on  *.*  to  'test'@'192.168.10.%' identified by '123.com'

           其次在测试机上 yum 安装 mysql 客户端命令

             yum  install  -y  mariadb

           测试机上使用amoeba 用户 登录 密码是配置文件中修改的 123456  访问地址未 amoeba 服务器地址(可以现在amoeba上测试看可不可以登录)

             mysql  -u amoeba  -p123456  -h 192.168.10.100  -P8066

           

            测试 读数据 只能读到两台slave 服务器上的数据 并且两台做轮询(负载均衡)

              在 masert 上创建数据库和表

创建完成后关闭三台数据库的同步

stop slave

            在 master 上 创建的表中添加一条记录

如需想要显示中文需更改 my.cnf 配置文件添加如图三条 重启数据库

            在 两台从服务器上分别添加第二条 和第三条记录

             第一台从服务器

第二台从服务器

  在客户端验证 多次查询 表记录 从服务器记录交替出现

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐