使用mycat部署mysql集群(分片,读写分离,主从复制)

使用mycat部署mysql集群(分片,读写分离,主从复制)_第1张图片

在s201,s202,s203上安装MySQL

(安装jdk)

配置MySQL 5.7的yum源

sudo tee -a /etc/yum.repos.d/mysql-community.repo << EOF
[mysql57-community]

name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/\$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
EOF

检查mysql源的信息

yum repolist enabled | grep mysql

安装mysql的server

sudo yum install -y mysql-community-server

启动mysql

sudo service mysqld start

获取启动日志中的默认初始密码

sudo grep ‘temporary password’ /var/log/mysqld.log

获取密码并赋给一个变量

PASSWORD=sudo grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}'

使用root用户登录

mysql -uroot -p$PASSWORD

修改root用户的密码

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘Lazy_123!’;

修改mysql远程登录权限

GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘Lazy_123!’ WITH GRANT OPTION;
FLUSH PRIVILEGES;

安装mycat(s201)

安装JDK并配置环境变量

解压安装包

修改配置文件

使用mycat部署mysql集群(分片,读写分离,主从复制)_第2张图片
使用mycat部署mysql集群(分片,读写分离,主从复制)_第3张图片

修改conf目录下主要以下三个注意配置文件

server.xml是Mycat服务器参数调整和用户授权的配置文件
schema.xml是逻辑库定义和表以及分片定义的配置文件
rule.xml是分片规则的配置文件

修改server.xml(修改了mycat的用户和逻辑的database)


        root
        bigdata




        root
        bigdata
        true

修改schema.xml(配置逻辑库下的逻辑表,已经数据存放的mysql节点)




    
        
        
select user() select user() select user()

在三台mysql上分别创建数据库db1、db2、db3

然后在每一个database中创建表,有三张(travelrecord、company、hotnews)注意主键的名称

在s201上启动mycat

[centos@s201 /soft/mycat]$bin/mycat start
jps

连接mycat

端口:8066
lazy
root
campany:全局表,所有节点都有数据
travelread: 按范围插入
host:id自增, id哈希

mysql -uroot -pLazy_123!
mysql -h 192.168.10.104 -P 8066 -u root -p123456

mysql主从复制(s202–s205)

条件:

主从数据库版本一致
主从数据库名称一致
主server和server_id必须唯一

主机配置

修改my.conf文件:
在这里插入图片描述

在[mysqld]段下添加:
#主从复制的数据库的名字
binlog-do-db=master
#忽略mysql数据库
binlog-ignore-db=mysql
#启用二进制日志
log-bin=mysql-bin
#服务器唯一ID,一般取IP最后一段
server-id=16

重启mysql服务

sudo service mysqld restart

刷新权限

mysql> FLUSH PRIVILEGES;

查询master的状态

mysql> show master status;

使用mycat部署mysql集群(分片,读写分离,主从复制)_第4张图片
注意:这里会生成二进制文件,mysql-bin.000004,指明了position为120,Binlog_Do_DB是master,小编就在这里出了错误,修改了my.conf后,没有重新启动mysql的服务,就没有产生新的二进制文件。

从机配置

修改my.conf文件

[mysqld]
server-id=17

配置从服务器

mysql>change master to master_host=‘192.168.255.202’,master_port=3306,master_user=‘root’,master_password=‘Lazy_123!’,master_log_file=‘mysql-bin.000003’,master_log_pos=306;
1
注意语句中间不要断开,master_port为mysql服务器端口号(无引号),master_user为执行同步操作的数据库账户,“120”无单引号(此处的120就是show master status 中看到的position的值,这里的mysql-bin.000001就是file对应的值)。

启动从服务器复制功能

Mysql>start slave;

检查从服务器复制功能状态:

mysql> show slave status
……………………(省略部分)
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
……………………(省略部分)

mysql读写分离

修改mycat的schema.xml文件

balance:决定了哪些MySQL服务器参与到读SQL的负载均衡中,
1为全部的readHost与standby writeHost参与select语句的负载均衡
WriteType参数设置:
writeType=“0”, 所有写操作都发送到可用的writeHost上。
switchType 目前有三种选择:
2 :基于MySQL主从同步的状态决定是否切换

    
         
        select user()
        
        
                
        
        
    
    

你可能感兴趣的:(环境部署,大数据)