连接mysql集群_mysql集群

连接mysql集群_mysql集群mysql 集群 1 主从复制原理 1 mysql 主 master 从 slave 复制的原理 面试题 master 将数据改变记录到二进制日志 binarylog 中 也即是配置文件 log bin 指定的文件 这些记录叫作二进制日志事件 binarylogeve slave 将 master 的 binarylogeve 拷贝到它的中继日志 relaylog slave 重做

mysql集群

1.主从复制原理

ff335cd5c3604688811c8e7334096ed0.png

(1)mysql主(master)从(slave)复制的原理?(面试题)

① master将数据改变记录到二进制日志(binary log)中,也即是配置文件log-bin指定的文件(这

些记录叫作二进制日志事件,binary log events)

② slave将master的binary log events拷贝到它的中继日志(relay log);

③ slave重做中继日志中的事件,将改变反映他自己的数据(数据重演);

(2)主从配置注意点:

主DB server 和从 DB server 数据库版本一致;

主DB server和从 DB server数据库数据一致;

主DB server 开启二进制日志,主DB server 和从DB server 的server_id 都必须一致。

2.主库配置文件 my.conf

(1)开启主从复制

[mysqld] log-bin = mysql-bin

#指定主库

serverid server-id=1

#记录同步的数据库,如果不指定则记录全部数据库以及同步全部数据库

binlog-do-db=db_a

(2)执行SQL语句查询状态

SHOW MASTER STATUS

3.在主库创建同步用户

(1)授权用户slave01使用 密码登入mysql

grant replication slave on *.* to ‘slave01’@’ip 地址’ identified by ‘kgc’;

(2)刷新配置

flush privileges;

4.从库配置文件 my,conf

(1)指定serverid,只要不复制即可,从库也只有这一个配置,其他都在

[mysqld] server-id=2

(2)Navicat中执行同步数据库配置操作

CHANGE MASTER TO

master_host=’127.0.0.1′,

#从数据库中查询得来 (show master status;)

master_user=’slave01′,

master_password=”,

master_port=3306,

master_log_file=’mysql-bin.000006′,

master_log_pos=1120;

(3)启动slave同步

START SLAVE;

(4)查看同步状态

SHOW SLAVE STATUS;

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-bin=mysql-bin #开启二进制日志

server-id=1#服务 id,不可重复

附注:#出现[Err] 1055 – Expression #1 of ORDER BY clause is not in GROUP BY clause and 错误解决方案,在 my.cnf 配置文件中设置

sql_mode=’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’

(3)创建容器

docker create –name percona-master01 -v /data/mysql/master01/data:/var/lib/mysql -v /data/mysql/master01/conf:/etc/my.cnf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23

(4)启动容器

docker start percona-master01 && docker logs -f percona-master01

(5)创建同步账号以及授权打开(navicat连接)

create user ‘kgc’@’%’ identified by ‘kgc’; grant replication slave on *.* to ‘kgc’@’%’; flush privileges;

(6)重新启动容器

docker restart percona-master01 && docker logs -f percona-master01

(7)查看配置是否成功

① 查看master状态

show master status;

② 查看二进制日志相关的配置

show global variables like ‘binlog%’;

③ 查看server相关的配置项

show global variables like ‘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_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’

(3)创建容器

docker create –name percona-slave01 -v /data/mysql/slave01/data:/var/lib/mysql -v /data/mysql/slave01/conf:/etc/my.cnf.d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root percona:5.7.23

(4)启动容器

docker start percona-slave01 && docker logs -f percona-slave01

(5)设置 master 相关信息(navicat 连接 mysql3307 端口)

set sql_mode = ”; set sql_mode = ‘NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES’;

# user:主数据库名 password : 主服务器密码

…file pos:主数据库中的参数

CHANGE MASTER TO

master_host=’192.168.115.188′,

master_user=’kgc’,

master_password=’kgc’,

master_port=3306,

master_log_file=’mysql-bin.000002′,

master_log_pos=648;

(6)启动同步

start slave;

(7)查看master状态

show slave status;

(8)测试

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200124.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午11:28
下一篇 2026年3月20日 上午11:29


相关推荐

  • 清晰的java代码初学者,一个不错的 java初学者手册

    清晰的java代码初学者,一个不错的 java初学者手册刚刚在网上看到有人在讨论java应注意的技巧已经整理好了本人太菜遇见这种菜鸟口粮自然不会放过不过也感觉其中有些不是特别的清楚不过作为参考至于是否准确工作中验证吧(1)使用Integer.valueOf()代替newInteger();(2)if(result.size()>0)returntrue;returnfalse;可以优化为returnres…

    2022年7月8日
    24
  • 两款免费、好用的数据库连接工具

    一、NavicateNavicat是一套快速、可靠的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。1、安装步骤(1)解压navicat_premium12文件,得到安装文件和破解文件。(2)双击navicat12024_premium_cs_x64.exe安装文件,根据点击下一步安装完成,记住安装目录,安装完成后先不

    2022年4月4日
    336
  • 计算机设备问题代码43,双击unknown device由于该设备有问题Windows已将其停止(代码 43)怎么办解决教程…「建议收藏」

    计算机设备问题代码43,双击unknown device由于该设备有问题Windows已将其停止(代码 43)怎么办解决教程…「建议收藏」金士顿U盘做的启动盘(8G),在别人的电脑上储存文件正常,但在自己的电脑上无法识别,在设备管理器中显示黄色叹号,属性显示“该设备存在问题,windows已将其停止,代码43”本机win7系统,别人电脑为XP系统。已将:禁用注册表dos设置节电卸载等办法都试过了,毫无头绪!怎么办呢?Windows已将其停止。(代码43)而苦恼。那小编今天就教你处理双击unknowndevice由于…

    2022年6月28日
    55
  • django通用视图通俗讲解_工程制图中视图包括哪些种类

    django通用视图通俗讲解_工程制图中视图包括哪些种类前言上篇我们通过mixin可以非常方便的实现一些CURD操作。实际上针对这些mixin,DRF还进一步的进行了封装,放到generics下。有以下generic类视图:generics.ListA

    2022年7月30日
    15
  • jar命令解压war包_java解压文件

    jar命令解压war包_java解压文件在J2EEWeb开发中,Web应用程序存档(WAR)文件只是一个普通的JAR文件,它包含您的所有Web应用程序组件,例如servlet,Java类,库,资源等。有关详细信息,请阅读Wiki。问题当前的Web应用程序WAR文件是通过Ant或Maven工具生成的,复制到*nix环境进行部署,但是不知道如何提取WAR文件?解WAR文件只是一个JAR文件,要提取它,…

    2022年10月4日
    5
  • pycharm下找不到要安装的模块包(如sqlalchemy)[通俗易懂]

    pycharm下找不到要安装的模块包(如sqlalchemy)[通俗易懂]大家都知道,pycharm有个很方便的地方,当一个模块包没有安装时,就可以1.点击File->settings  2.选择ProjectInterpreter,点击右边绿色的加号添加包 3.输入你想添加的包名,点击InstallPackage 但是当我用这个去导入sqlalchemy包时,发现找不到。然后就是解决办法了,你点击鼠标右键就会出出现然后红色框标…

    2022年8月26日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号