300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql分片做主从_使用mycat部署mysql集群(分片 读写分离 主从复制)

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

时间:2018-06-12 06:55:24

相关推荐

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

在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=/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并配置环境变量

解压安装包

修改配置文件

修改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;

注意:这里会生成二进制文件,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()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。