mysql集群
1 .主从复制原理
)1) mysql主从机)复制原理? (面试题) )。
master将数据变更记录在二进制日志(cxdhlgary log )中。 即,由配置文件log-cxdhlg指定的文件)
一些记录被称为二进制日志事件、cxdhlgary log events )
slave将主文件的cxdhlgary log events复制到其中继日志(relay log )中
slave redo relay loging事件改变反映他自身的数据() (再现数据) );
)2)主从配置注意事项:
主数据库服务器和从数据库服务器的数据库版本匹配;
主数据库服务器和从数据库服务器的数据库数据一致;
主数据库服务器必须打开二进制日志,并且主数据库服务器和从属数据库服务器的server_id必须匹配。
2 .主库配置文件my.conf
(1)打开主从副本
[ mysqld ] log-cxd hlg=MySQL-cxd hlg
#指定主库
服务器id server-id=1
#记录要同步的数据库,如果未指定,则记录所有数据库并同步所有数据库
cxdhlglog-do-db=db_a
)2) SQL语句的查询执行情况
SHOW MASTER STATUS
3 .在主库中创建同步用户
(1)许可证用户slave01用123456密码登录mysql
grantreplicationslaveon *.* to ' slave 01 ' @ ' IP地址' identified by 'kgc ';
)2)刷新配置
flush privileges;
4 .从库配置文件my,conf
)1)指定serverid,不进行复制即可。 从库中也只有这么一个结构,其他的都是
[mysqld] server-id=2
)2)在Navicat上执行同步数据库配置操作
变更主目标
master_host='127.0.0.1 ',
#数据库联系(show master status; )
master_user='slave01 ',
master_password='123456 ',
master_port=3306,
master _ log _ file=' MySQL-cxd hlg.000006 ',
master_log_pos=1120;
)3)启动关闭同步
开始幻灯片;
)4)查看同步状态
显示幻灯片状态;
5 .建立主库
(1)创建目录
mkdir /data/mysql/master01 -p
cd /data/mysql/master01
mkdir conf data
chmod 777 * -R
)2)创建配置文件
cd /data/mysql/master01/conf
vim my.conf
#写入文件
[mysqld]
log-cxdhlg=mysql-cxdhlg #打开二进制日志
server-id=1#服务id,不能重复
注意# [ err ] 1055-expression # 1发生forderbyclauseisnotingroupbyclauseand错误解决方案。 在my.cnf配置文件中设置
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,error _ for _ division _ by _ by
(三)制作集装箱
docker create---name percona-master 01-v/data/MySQL/master 01/data 3360/var/lib/MySQL-v/data/MySQL /
)4)启动容器
dockerstartpercona-master 01 docker logs-fpercona-master 01
)5)创建同步帐户和开放许可证(navicat连接) ) ) )。
create user ' kgc ' @“% ' identified by ' kgc '; grantreplicationslaveon *.* to ' kgc ' @ ' %; flush privileges;
)6)重新启动容器
dockerrestartpercona-master 01 docker logs-fpercona-master 01
)7)看配置是否成功
观察主机的状态
show master状态;
查看二进制日志相关配置
showglobalvariableslike ' cxdhlglog % ';
查看服务器相关设置
showglobalvariableslike ' server % ';
6 .建立从库
(1)创建目录
mkdir /data/mysql/slave01
cd /data/mysql/slave01
mkdir conf data
chmod 777 * -R
)2)创建配置文件
cd /data/mysql/slave01/conf
vim my.cnf
#输入内容
[mysqld] server-id=2 #服务id,不能重复
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,error _ for _ division _ by _ by
(三)制作集装箱
docker create---- name percona-slave 01-v/data/MySQL/slave 01/data 3360/var/lib/MySQL-v/data/MySQL/slata
)4)启动容器
dockerstartpercona-slave 01 docker logs-fpercona-slave 01
)5)设置主相关信息(navicat连接mysql3307端口) ) ) ) ) )。
set sql_mode=' '; setsql _ mode=' no _ engine _ substitution,STRICT_TRANS_TABLES ';
# user:主数据库名称password :主服务器密码
. file pos :主数据库中的参数
变更主目标
master_host='192.168.115.188 ',
master_user='kgc ',
master_password='kgc ',
master_port=3306,
master _ log _ file=' MySQL-cxd hlg.000002 ',
master_log_pos=648;
(6)启动同步
开始幻灯片;
)7)查看主机的状态
显示幻灯片状态;
(8)测试