搭建mycat+mysql集群的步骤

1 mysql主从配置

1.1 主虚拟机配置(192.168.137.128)

1.2 从虚拟机配置(192.168.137.129)

1.3 测试

2 配置mycat

2.1 安装jdk

2.2 安装mycat

2.3 配置server.xml

2.4 配置schema.xml

2.5 测试

1主虚拟机配置(192.168.11.109

  • 1.1 修改/etc/mysql/mysql.conf.d/mysqld.cnf文件
    • 1.1.1 [mysqld]下添加以下

 

character_set_server = utf8

init_connect = 'SET NAMES utf8'

log-bin=mysql-bin

server-id=1

 1.2 [mysqld]下注释掉bind-address = 127.0.0.1 

进入%home%/bin,执行mysql -uroot -proot

#授权。允许root用户,从192.168.137.*的IP范围 远程访问A主mysql

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.137.*' IDENTIFIED BY 'root' WITH GRANT OPTION;

#生效。该操作很重要!

mysql>FLUSH PRIVILEGES;

  • 1.3.3 显示master

show master status;

 1、使用 service 停止:service mysqld stop

  2、使用 service 启动:service mysqld start

service mysqld restart

service mariadb restart

 

从虚拟机配置(192.168.11.117)

 

2.1 修改/etc/mysql/mysql.conf.d/mysqld.cnf文件

 

2.1.1 在[mysqld]下添加以下

        vi /etc/mysql/mysql.conf.d/mysqld.cnf

        character_set_server = utf8

        init_connect = 'SET NAMES utf8'

        log-bin=mysql-bin

        server-id=2

  • 2.3.1 进入mysql,重置slave

这里的 master_log_file master_log_pos 在主虚拟机的 mysql master 中,就是上面的图所示!

 

  stop slave;

    reset slave;

    change master to           master_host='192.168.137.128',master_user='root',master_password='123',master_log_file='mysql-bin.000002',master_log_pos=120;

  •  
    • 2.3.2 启动slave

     start slave;

  • 2.4 测试

master虚拟机中创建一个数据库,然后再slave虚拟机中查看,如果,slave中有刚刚测试的数据库,说明mysql主从配置成功。

主: 

create database testMS;

use testMS;

create table ming(id int,name varchar(200));

insert into ming values(1,'ming');

select * from ming;

 

3.配置server.xml

 

到 mycat 的 conf 目录下,修改 server.xml 文件添加 test 和user 用户,test 用户,密码也为 test,user 用户,密码也为user

 

      

                test

                TESTDB

 

               

               

           

 

          

                user

                TESTDB

                true

          

 4.配置schema.xml

 

设置读和写服务器的ip与端口,以及集群策略。这里的 schema 的 name 要与 server.xml 的 schema 保持一致, database 对应的是 mysql 里面已经存在的数据库,也就是说,mycat 的 TESTDB 代理了 主/从虚拟机的 mysql 的 test 数据库

 

 

       

 

 

  

 

 

             show slave status

            

           

 

show slave status 表示一种集群策略,只适用在一主一从的环境中,当主 down 掉, 从可以充当主和从

 

balance属性

 

balance=”0”, 不开启读写分离机制,所有读操作都发送到当前可用的 writeHost 上

balance=”1”,全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡

balance=”2”,所有读操作都随机的在 writeHost、 readhost 上分发。

balance=”3”, 所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力

 

writeType 属性

 

负载均衡类型,目前的取值有 3 种:

writeType=”0”, 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost, 重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties

writeType=”1”,所有写操作都随机的发送到配置的 writeHost

 

  • 5 启动mycat

 cd /opt/mycat/bin

 ./mycat start

补充:mycat的常用命令

关闭

mycat stop

重启

mycat restart

查看mycat状态

mycat status

  • 6 测试

现在 mycat 可以代理 mysql 了,用 navicat 连接 mycat8066端口)

现在到主虚拟机用命令行查看数据库,看看刚在 navicat 写进 mycat 的数据有没有显示出来

mycat 的账号密码登录到主虚拟机的 mycat,查看并添加一条数据 tom

mysql -uroot -ptest -h127.0.0.1 -P8066

 

1:注意不要用mysql -uroot -ptest -hlocalhost -P8066
localhost会直接连接到mysql 
注意要mysql -uroot -p -hlocalhost -P8066
先不要密码,然后在输入密码。
2

schema.xml中数据库名称注意要对称。

你可能感兴趣的:(数据库)