实现集群(主从同步、读写分离、分片机制)
主从同步
1.在my.cnf配置主从关系
配置链接:https://pan.baidu.com/s/1mvX_iXnmgQ7Xhh_LG4T5zA 提取码:dong
包含mysql编码、时区、连接数、验证机制、版本5.7后分组问题处理
2.挂载运行Mysql8.0.21
docker run --name mysql-latest -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -v /var/run/docker.sock:/var/run/docker.sock -v /root/mysql/conf.d:/etc/mysql/conf.d -v /root/data:/var/lib/mysql -v /home/mysql/my.cnf:/etc/mysql/my.cnf -d mysql:latest
详情参照地址:https://www.yuque.com/docs/share/db61bc50-fe76-4a38-9c18-925a1ff01538
3.登录Mysql创建数据同步用户slave1、slave2,并授权
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
alter user 'slave'@'%' identified with mysql_native_password BY '123456';
创建用户slave,密码123456
同版本 GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'slave'@'%';
不同版本 GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
授予slave用户 REPLICATION SLAVE权限和REPLICATION CLIENT权限,用于在主 从 数据库之间同步数据
授予所有权限则执行命令: GRANT ALL PRIVILEGES ON . TO ‘slave’@’%’;
FLUSH PRIVILEGES
4.查询状态中的File和Position用于从服务连接
show master status;
5.在slave1服务器中登录mysql,启动主从同步
change master to master_host='192.168.10.223',master_port=3307, master_user='slave2', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos= 23693875, master_connect_retry=30;
start slave;
关闭同步:stop slave;RESET slave;
6.查看同步状态
show slave status
IO_Running与SQL_Running为Yes表示成功
读写分离
1.配置scheam.xml中的主从节点关系与server.xml中的用户权限信息
配置链接:https://pan.baidu.com/s/14l5fSdIIVLmAlG3hSkXN9w 提取码:dong
2.挂载运行
docker run --name mycat_server -d -p 8066:8066 -p 9066:9066 --restart=always -v /home/mycat/server.xml:/usr/local/mycat/conf/server.xml -v /home/mycat/schema.xml:/usr/local/mycat/conf/schema.xml longhronshens/mycat-docker