图解Windows下如何配置MySQL数据库主从

style="text-indent:2em;">其实如何使用mysql主从配置的问题并不复杂,但是又很多的朋友都不太了解mysql id 不建议过长,因此呢,今天小编就来为大家分享如何使用mysql主从配置的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

  1. Java自学有什么好的学习建议么
  2. 如何使用mysql主从配置
  3. oracle数据库如何与mysql数据库交互

Java自学有什么好的学习建议么

就好像一千个人心中有一千个哈利波特一样,这个答案不绝对也不唯一,Java好学但自学的确阻力有些大,作为一门技术语言,它所蕴含的智慧绝对不是靠几本XX入门,XX框架之类的书所能概括,自学Java你要做好一种英语0基础达到4级水平的准备理出了一些自学Java可能遇到的问题,希望会对你的学习有所促进和帮助。

自学Java可能遇到的问题有哪些?

一方面是:对Java了解不够深刻,缺乏灵活应用的本领就好像我们学会了26个英文单词,但仍旧不能写出一串正确的句子;

另一方面是:缺乏独立查找错误的能力这个能力是伴随所有程序的,无论你有多少年丰富的项目经验,你必须能写代码,还能发现bug并且能够解决这个bug,对于自学者而言因为没有基础的沉淀,对Java各种编程属性的不了解,往往会遇到“能正着写,却不能倒着推”三分时间写代码七分时间找bug工作效率也大打折扣。

耗尽了所有的耐力,学到这里才是Java课程基础,你可能用了3个月、5个月甚至更久才勉强消化这些知识,对以后学好框架几乎成了奢望。所以自学Java还是奢望,自学Java只是浪费时间,最后还会成为徒劳,什么都学习不会。

下面是我觉得是比较全面的学习框架体系

1:电商项目专题

2:分布式专题

3:团队协作专题

4:微服务架构专题

5:性能优化专题

6:源码分析

结尾

最后,送大家一句话,我是在某个网站上看到的:

再牛x的梦想也抵不住傻x似的坚持!

还有,别走。

我没有办法助你成功,那是洗脑工程师做的事儿。

我倒是有这么个晋升渠道,它可能会帮你完成那每天的0.01的积累。

如何使用mysql主从配置

mysql主从配置

MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的

MySQL主从是基于binlog的,主上须开启binlog才能进行主从。

主从过程大致有3个步骤

1)主将更改操作记录到binlog里

2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog(中继日志)里

3)从根据relaylog里面的sql语句按顺序执行

主上有一个logdump线程,用来和从的I/O线程传递binlog

从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地

这里写图片描述

主从配置-主上操作

安装mysql

修改my.cnf,增加server-id=130和log_bin=aminglinux1

[root@wwlinux701logs]#vim/etc/my.cnf

server-id=130

log_bin=wwlinux701

修改完配置文件后,启动或者重启mysqld服务

[root@wwlinux701logs]#/etc/init.d/mysqldrestart

ShuttingdownMySQL....SUCCESS!

StartingMySQL..............SUCCESS!

[root@wwlinux701logs]#

1

2

3

4

把mysql库备份并恢复成aming库,作为测试数据

mysqldump-uroot-p123456mysql>/tmp/mysql.sql

mysql-uroot-p123456-e“createdatabaseaming”

mysql-uroot-p123456aming</tmp/mysql.sql

[root@wwlinux701logs]#mysqldump-uroot-p123456mysql>/tmp/mysql.sql

Warning:Usingapasswordonthecommandlineinterfacecanbeinsecure.

[root@wwlinux701logs]#mysql-uroot-p123456-e"createdatabaseaming"

Warning:Usingapasswordonthecommandlineinterfacecanbeinsecure.

[root@wwlinux701logs]#mysql-uroot-p123456aming</tmp/mysql.sql

Warning:Usingapasswordonthecommandlineinterfacecanbeinsecure.

[root@wwlinux701logs]#

创建用作同步数据的用户

mysql-uroot-p123456aming

grantreplicationslaveon.to‘repl’@192.168.11.131identifiedby‘123456’;

flushtableswithreadlock;#需要先锁定表

showmasterstatus;

[root@wwlinux701logs]#mysql-uroot-p123456aming

grantreplicationslaveon*.*to'repl'@192.168.11.131identifiedby'123456';

mysql>grantreplicationslaveon*.*to'repl'@192.168.11.131identifiedby'123456';

QueryOK,0rowsaffected(1.00sec)

mysql>

flushtableswithreadlock;#需要先锁定表

mysql>flushtableswithreadlock;

QueryOK,0rowsaffected(0.11sec)

mysql>

wwlinux701.000001|660619#需要记住这两个参数

这里写图片描述

主从配置-从上操作

安装mysql

查看my.cnf,配置server-id=131,从要求和主不一样从上不需要log_bin,因为只有主才需要二进制文件

修改完配置文件后,启动或者重启mysqld服务

scp192.168.11.130:/tmp*.sql/tmp/

把主上aming库同步到从上mysql库除外的其他库都同步一下

可以先创建aming库,然后把主上的/tmp/mysql.sql拷贝到从上,然后导入aming库

mysql-uroot-p123456

stopslave;

changemastertomaster_host=’192.168.11.130’,master_user=’repl’,master_password=’123456’,master_log_file=’wwlinux701.000001’,master_log_pos=660619;

startslave;

showslavestatus\G#用这个命令监测如果是两个yes就是没问题的

这里写图片描述

还要到主上执行unlocktables;

查看主从同步是否正常

从上执行mysql-uroot

showslavestauts\G

看是否有

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

还需关注

Seconds_Behind_Master:0//为主从延迟的时间

Last_IO_Errno:0

Last_IO_Error:

Last_SQL_Errno:0

Last_SQL_Error:

几个配置参数

主服务器上

binlog-do-db=//仅同步指定的库

binlog-ignore-db=//忽略指定库

从服务器上

replicate_do_db=

replicate_ignore_db=

replicate_do_table=

replicate_ignore_table=

replicate_wild_do_table=//如aming.%,支持通配符%

replicate_wild_ignore_table=

测试主从

主上mysql-uroot-p123456aming

selectcount(*)fromdb;

这里写图片描述

truncatetabledb;

到从上mysql-uroot-p123456aming

selectcount(*)fromdb;

这里写图片描述

主上继续droptabledb;

从上查看db表

主上执行

select*fromuserwhereHost=’localhost’;

mysql>deletefromuserwhereHost=’localhost’;

这里写图片描述

从上执行

select*fromuserwhereHost=’localhost’;

这里写图片描述

oracle数据库如何与mysql数据库交互

可以明确的告诉你,不同数据库之间是不存在所谓的交互关系的!所以Oracle和MySQL数据库之间没法交互(无法在Oracle中查询MySQL,反之亦然)。虽说数据库与数据库之间无办法直接交互,但是可以通过某些手段来变相达到交互的目的。

1、数据库迁移

数据库是用来存储数据的,对于系统而言它是数据落地存储的一种组织方式。现在市面上的数据库种类也很多,比如说有:关系型数据库、非关系型数据库、时序数据库等。Oracle和MySQL都属于关系型数据库,目前在市面上的占有率也是很高的。不少项目在早期和后期的发展过程中,可能会存在架构上的迁移,比如有这些场景:

项目开发语言的更换;

项目所使用的数据库种类更换。

当现有项目的数据库需要变更时,这就涉及到数据的迁移了,此时需要将这个数据库中的数据全部迁移到另一种数据库中,我们通常借助数据导出导入工具来进行迁移。

2、不同系统间通过API进行数据交互

比如项目A使用的是MySQL,项目B使用的是Oracle,两个项目可以借助API来实现数据交互(查询、导出、新增、删除等)。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流~我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

关于本次如何使用mysql主从配置和mysql id 不建议过长的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

mysql主从配置