1 案例1:搭建mycat 分片服务器
1.1 问题
• 数据库主机 192.168.4.55 使用db1库存储数据
• 数据库主机 192.168.4.56 使用db2库存储数据
• 主机 192.168.4.54 运行mycat服务,逻辑库名称为test,连接用户名为admin,密码123456
• 在主机 192.168.4.254 访问测试配置
1.2 方案
准备四台主机,搭建mycat分片服务器,通过某种特定条件,将存放在一个数据库(主机)中的数据,分散存放到多个数据库(主机)中,已达到分散单台设备负载的效果。其中192.168.4.56作为mycat服务器,192.168.4.54和192.168.4.55作为数据库服务器,192.168.4.254作为客户端。如图-1所示:
图-1
数据分片的拓扑如图-2所示:
图-2
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:公共配置
1)关闭防火墙和selinux,配置yum源(系统源),这里不再操作
2)把54,55还原成独立数据库服务器,且只保留默认4个库其他都删除,停止56主机的mha管理服务,下载mycat 软件到56主机
3)在54(主机c2)和55(主机c1)上面创建db1和db2库
1. [root@zlz ~] # mysql -u root -p123456
2. mysql> create database db1; //c1上面创建db1库
3. Query OK, 1 row affected (0.00 sec)
4.
5. [root@zlz ~] # mysql -u root -p123456
6. mysql> create database db2; //c2上面创建db2库
7. Query OK, 1 row affected (0.00 sec)
在54上面授权一个用户
1. mysql> grant all on *.* to admin@"%" identified by "123456";
2. Query OK, 0 rows affected, 1 warning (0.00 sec)
在55上面授权一个用户
1. mysql> grant all on *.* to admin@"%" identified by "123456";
2. Query OK, 0 rows affected, 1 warning (0.00 sec)
4)修改数据库的配置文件
注意:1代表不区分表名的大小写,0为区分大小写
主机c1上面:
1. [root@zlz ~] # vim /etc/my.cnf
2. [mysqld]
3. lower_case_table_names=1 //表名忽略大小写
4. [root@zlz ~] # systemctl restart mysqld
主机c2上面:
1. [root@zlz ~] # vim /etc/my.cnf
2. [mysqld]
3. lower_case_table_names=1
4. [root@zlz ~] # systemctl restart mysqld
5.
5)在56主机上面安装JDK
1. [root@zlz ~] # rpm -qa | grep -i jdk //安装自带的即可
2. java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
3. java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
4. copy-jdk-configs-2.2-3.el7.noarch
5. [root@zlz ~] # yum -y install java-1.8.0-openjdk
6)在56主机上面安装mycat
1. [root@zlz ~] # cd mysql/
2. [root@zlz mysql]# tar -xf Mycat-server-1.4-beta-20150604171601-linux.tar.gz //免安装,解压即可使用
3. [root@zlz mysql]# mv mycat/ /usr/local/
4. [root@zlz mysql]# ls /usr/local/mycat/
5. bin catlet conf lib logs version.txt
6. [root@zlz mysql]# cd /usr/local/mycat/
7. [root@zlz mycat]# ./bin/mycat --help
8. Usage: ./bin/mycat { console | start | stop | restart | status | dump }
7&#