部署主从数据库

        大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力。今天总结一下利用MySQL主从配置,实现读写分离,减轻数据库压力。

优点:方便做数据的热备份;架构扩展更容易;读写分离,使数据库能支撑更大的并发

 


部署主从数据库

准备两台虚拟机:mysql1、mysql2 、网络配置、yum源

修改主机名:hostnamectl set-hostname mysql1

刷新shell命令行: bash

查看主机信息:hostnamectl

关闭防火墙和selinux服务:systemctl stop firewalld ; setenforce 0

配置/etc/hosts 文件 (mysql2)      

一、安装数据库服务、启动、并设置开机自动启动 (同mysql2)

 yum -y install mariadb mariadb-server

 systemctl start/enable mariadb

二、初始化数据库前必须重启数据库   (同mysql2)

 mysql_secure_installation

三、修改mysql1节点的数据库配置文件/etc/my.cnf、重启数据库服务,并进入数据库(同mysql2)

修改、并加入三行: vi /etc/my.cnf   

 

重启数据库: systemctl restart mariadb

登陆: mysql -uroot -p000000

四、在mysql1节点,授权在任何客户端机器上可以以root用户登录到数据库,然后在主节点上创建一个user用户连接节点mysql2,并赋予从节点同步主节点数据库的权限

grant all privileges on *.* to root@'%' identified by '000000';

grant replication slave on *.* to 'user'@'从节点ip地址' identified by '000000';

将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里:flush privileges;

显示主机状态:show master status; 

 

五、在从节点mysql2上登录MariaDB数据库,配置从节点连接主节点的连接信息。

 change master to master_host='mysql1',master_user='user',master_password='000000';

 

六、配置完毕主从数据库之间的连接信息之后,开启从节点服务

start slave;

show slave status\G

 看到两个yes则表示成功;

 

本文转载于网络 如有侵权请联系删除

相关文章

  • 蓝桥杯单片机AT24C02芯片上电自启动编程「建议收藏」

    大家好,又见面了,我是全栈君。蓝桥杯单片机AT24C02芯片上电自启动读取数据,写入数据的实现也是挺重要的一个模块,往年的考试就有考到过,下面就来解说一下具体的分析过程吧。编写一个记录上电次数的代码,每一次上电自加一,使用数码管显示。首先,官方提供的数据包中有提供了IIC总线的底层驱动代码,我们是可以直接调用这个底层驱动代码的,方便自己编写代码; 其次,系统设置一个记录上电次数的变量,上电的时候,上电之后把变量自加一,写入到芯片中; 之后,对芯片数据进行读取,读取到的数据进行显示; 最后,大概流程就差不多了,开始动手吧。#include"reg52.h" #include"iic.h" #include"intrins.h" typedefunsignedcharu8; typedefunsignedintu16; u8shuma[12]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xbf}; //外设初始化 voidinit_system() {

  • TypeScript入门第一天,所有类型+基础用法+接口使用

    、基础类型和基础用法数据类型关键字描述及用法任意类型any声明为any的变量可以赋予任意类型的值。letnotSure:any=4;notSure="小陈";//数字变字符串不会报错数字类型number它可以用来表示整数和分数。和JavaScript一样,TypeScript里的所有数字都是浮点数。支持十进制、十六进制、二进制、八进制字面量。letdecLiteral:number=6;//十进制字符串类型string表示字符串,使用单引号(')或双引号(")来表示字符串类型。反引号(`)来定义多行文本以及用${}内嵌表达式。letname:string="小陈";letwords:string=`您好${name}`;布尔类型boolean表示逻辑值:true和false。在JavaScript和TypeScript里叫做boolean数组类型无声明变量为数组。//在元素类型后面加上[]letarr:number[]=[1,2];//或者使用数组泛型,Array<元素类型>letarr:Array<numb

  • Now in Android #18 —— 最新 Android 动态分享

    大家好,我是秉心说。最新一期的NowinAndroid又更新啦,原文地址如下:https://medium.com/androiddevelopers/now-in-android-18-4ee70b267765这一期原文内容并不多,其实最近几期内容都不多。可能是疫情影响,也可能是作者划水~所以,后面我可能不再按官方的NowinAndroid进行更新了。平时在各种渠道获取到的最新动态,看到的优秀文章,我都会记录下来,然后不定期分享给大家。这样一来,工作量可能就更大了,所以我用了“可能”两个字,毕竟flag不能乱立~下面照例来看一下这一期NowinAndroid的内容。(文末给大家推荐了两个实用工具~)Android11更新Android11开发者预览版仍在进行。在上一期NowinAndroid之后,有两个值得一提的内容。开发者预览版4Android11DeveloperPreview4也是一个主要面对开发者的版本,相对于DP3也没有太大改变,ReleaseNote可以在这里查看:https://developer.android.com/preview/release-notes注意,

  • 深度推荐模型——BST [KDD 19][Alibaba]

    受Transformer在自然语言处理中取得巨大的效果启发,BST将应用Transformer用于提取用户行为序列背后的隐藏信息,同时考虑序列的前后顺序,能够更好的表达用户兴趣。 importtensorflowastf fromtensorflowimportkeras fromutilsimport* importnumpyasnp EPOCH=10 BATCH_SIZE=32 VEC_DIM=16 DROPOUT_RATE=0.2 HEAD_NUM=8 HIDE_SIZE=32 LAYER_NUM=3 DNN_LAYERS=[1024,512,256] data,max_user_id,max_item_id=load_data() #行为特征个数 BEHAVIOR_FEAT_NUM=32 K=tf.keras.backend classMultiHeadSelfAttention(keras.layers.Layer): def__init__(self,embed_dim,num_heads=8): super(MultiHeadSelfAttention,self).

  • JMC | 中国药科大学尤启冬/姜正羽教授团队报道Azo-PROTAC光诱导蛋白降解

    作为21世纪药物研发领域的新秀,PROTAC技术给被打上“不可成药”标签的靶点蛋白带来了希望,传统小分子药物需要与酶或受体的活性位点结合才能够发挥药效,但多数蛋白并不具备这样的位点,PROTAC能够使它们从“不可成药”(undruggable)变成“可成药性”(druggable),近些年来,该技术在药物研发中遍地开花,已经开发出了多个小分子降解剂,取得了一系列优异的成果。有人评价PROTAC技术给药物开发带来颠覆性的变化。与此同时,随着研究的不断深入,PROTAC的硬伤一个个暴露出来。因为分子量较大,在合成上会比较困难,药物动力学(PK)也是小分子降解剂成药的一大障碍。最让研究者牵挂的是它的脱靶毒性,传统抑制剂与靶蛋白的结合并不是百分百完全结合,这一点保证了药物不会对正常细胞生理功能有明显影响,但降解剂不同,不受控制的降解过程导致靶蛋白大量被降解,会不会引起毒性作用,另外会不会误伤到其他的蛋白,带来更大的毒性,在后期开发中这也是要考虑的风险。因此,新一代PROTAC技术提出了“降解可控性”的概念,给降解剂的研发带来了新的挑战。不过,更大的挑战意味着更多的机遇。近日,中国药科大学尤启冬

  • Redis迁移工具redis-port使用&代码分析

    Redis现在是互联网公司缓存的标配了,在一些场景下我们需要将redis的数据从一些实例迁移到其它实例上,一个好的Redis数据迁移工具可以起到事半功倍的效果,今天为大家介绍一款好用、稳定的工具:redis-port,我们在生产环境上有实际使用过。源码地址:https://github.com/CodisLabs/redis-port1、安装先安装go,然后进入源代码的根目录,直接make就可以了;我用的分支是redis-4.x-cgo。 2、使用主要讲下迁移数据吧,redis-port有很多参数,这里只列一些常用参数:-m:表示从哪里迁-t:表示迁移到哪里去 ./bin/redis-sync-m172.21.106.228:6379-t172.21.106.228:9001表示将数据从172.21.106.228:6379迁移到172.21.106.228:90013、工作原理讲工作原理之前,先了解下redis主、从同步的原理,因为redis-port的工作原理就是把自己模拟成一个从,利用主、从同步机制来完成数据迁移的。在2.8之前redis主、从同步只有一种方式:sync (图片来

  • AkShare-股票数据-股票指数历史成份

    作者寄语更新股票指数历史成份接口,通过本接口可以获取股票指数的历史成份股数据,该数据从2005至今所有的指数成份股变动数据。该接口可以查询主要的指数的成份数据,需要最新成份可以查询index_stock_cons接口获取。更新接口"index_stock_hist"#股票指数历史成份历史成份接口:index_stock_hist目标地址:http://stock.jrj.com.cn/share,sh000300,2015nlscf_2.shtml描述:获取指定股票指数的历史成份股票信息输入参数名称类型必选描述indexstrYindex="sh000300";带市场前缀的指数代码importakshareasak stock_index_hist_df=ak.index_stock_hist(index="sh000001") print(stock_index_hist_df) 复制输出参数名称类型默认显示描述stock_codestrY股票代码in_datestrY进入时间out_datestrY退出时间数据示例stoc

  • Onlyoffice不打开文档的情况下下载正在编辑的文档

    文档管理平台上列表显示了文档,假如一个文档有人已经打开了在编辑,而正在编辑的文档由于未触发保存机制,所以文档管理系统里存在硬盘的文档是旧的。此时,其他用户也进入这个管理平台,想下载这个文件,一般是只能下载管理平台系统里存的文档。想下载最新的OO服务器内存中的最新的文件,就要有key,和发送一个请求过去。如下:根据网友的提示,原理是利用commandservice功能,发送一个请求给oo服务,oo会立刻自动执行forcesave动作,并将文档地址等信息发给文档管理平台,即callback。发送command请求是post,json要放到requestbody中。{ "c":"forcesave", "key":"Khirz6zTPdfd7", "userdata":"sampleuserdata" }复制 这个请求只会返回如下样子,error从0~6,对应的情况看官网。{ "error":0, "key":"Khirz6

  • win7 64位安装mysql-pyth

    ###今天测试个小程序在win764位系统下需要安装一下MySQL-python,参考了一下其他博客,发现都不行,最后用以下方法成功了,写一下留作笔记。1、前提是Python2.7和mysql5.7已经都安装成功。 2、发现了这个网站:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python,搜索mysql-python且下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/g7ckv9dk/MySQL_python-1.2.5-cp27-none-win_amd64.whl3、安装:>pipinstallMySQL_python-1.2.5-cp27-none-win_amd64.whl 4、测试:D:\TDDOWNLOAD>pythonPython2.7.12(v2.7.12:d33e0cf91556,Jun272016,15:24:40)[MSCv.150064bit(AMD64)]onwin32Type"help","copyright"

  • VirtuaNESv0.97-FC游戏模拟器.运行NES文件

    VirtuaNESv0.97-FC游戏模拟器.运行NES文件作者:matrix被围观:1,985次发布时间:2013-03-06分类:兼容并蓄|无评论»这是一个创建于3466天前的主题,其中的信息可能已经有所发展或是发生改变。FC游戏曾经相当的流行的。想当年~ 90后最爱啊,还有80后。Virtuanes功能非常强大.能完全模拟fc游戏(也就是nes格式的文件)运行。下载:VirtuaNES汉化版(PC端nes模拟器) http://pan.baidu.com/s/1kTD14Cv如图,打开压缩包里的VirtuaNES.exe。按CTRL+O键打开窗口对话,再选择需要运行的nes文件打开即可。需要修改主、副机按键。点击菜单栏的“选项”--“控制器”即可。如图。控制器1、2就分别是主、副机。顺便附带几个NES游戏:下载:NES.rar & http://dl.vmall.com/c0kky9x56t炸弹人.nes 热血格斗传说(中文).nes 拳王97(格斗之王97)(中文).nes 救火英雄.NES 激龟快打(忍者神龟格斗版)(中文).nes 公路赛车火箭车.nes 饿狼传说特

  • 2022/2/16

    1.Object.defineProperty()        函数的apply调用传递的第二参数为数组,但是函数接收参数时还是一个一个接收的,可以用rest参数来接收传入的数组参数。    2.严格模式的开启方法和开启的范围          3.JS中作用域的深层次的理解            4.闭包的生层次理解 scopechain类似一个栈结构,后面预编译创建的AO对象都是入栈的。    5.使用闭包实现一个登录的单例模式                     !import  

  • python爬虫学习:可视化监控你的爬虫

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文章来自腾讯云作者:python学习教程 想要学习Python?有问题得不到第一时间解决?来看看这里“1039649593”满足你的需求,资料都已经上传至文件中,可以自行下载!还有海量最新2020python学习资料。点击查看 相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量,当然查询的方式多种多样。今天我来讲一种可视化的方法。 1.成品图 这个是监控服务器网速的最后成果,显示的是下载与上传的网速,单位为M。爬虫的原理都是一样的,只不过将数据存到InfluxDB的方式不一样而已,如下图。可以实现对爬虫数量,增量,大小,大小增量的实时监控6.存数据InfluxDb数据库的数据有一定的格式,因为我都是利用python库进行相关操作,所以下面将在python中的格式展示一下:所以,到这里,如何将爬虫的相关属性存进去呢?以MongoDB为例那么现在我们已经往数据里存了数据了,那么接下来要做的就是把存的数据展示出

  • python 快速排序详述

      快速排序是对“冒泡排序”的优化算法,都属于交换排序类。 描述:它通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个过程递归进行,以此使得整个数据变成有序序列。 值得注意:目前C++,java,PHP,JS等语言的排序源码中引用排序算法就是快速排序的改进算法实现的。 性能方面:时间性能取决于快速排序递归的深度。   \时间复杂度空间复杂度 最坏情况 O(n^2) O(n) 最好情况 O(nlogn) O(logn) 平均情况 O(nlogn) O(logn) 由于关键字的比较和交换是跳跃的,所以是一种不稳定的排序。   实现代码示例: #-*-coding:utf-8-*- __author__='webber' defquick_sort(lst): Qsort(lst,0,len(lst)-1) defQsort(lst,low,high): iflow>=high: return#分段无记录或只有一个记录 else:

  • python 库的安装 三个方法

    推荐使用顺序:先使用方法1等十五秒没有完成就暂停(下载小库可行);然后使用方法2.②;前边的还不行再使用方法2.①;最后保底的方法3 1.在pyCharm中安装(小的库可以,大多数时候因为库有几兆或者几十兆就会失败,这时请看下一条安装方法)            2.在pip中安装(以安装pandas为例) ①官方: cmd输入命令: pipinstallpandas复制 但是外网,网速特别慢,而且只要中途网络慢了断了,就要重新开始;我下载十兆以上的就没有成功过。 ②cmd命令:(这是个国内的镜像,下载很迅速) pipinstallpandas-ihttps://pypi.tuna.tsinghua.edu.cn/simple复制   临时设置方法: 可以在使用pip的时候加在最后面加上参数-ihttps://pypi.tuna.tsinghua.edu.cn/simple 例如: pipinstalljieba-ihttps://pypi.tuna.tsinghua.edu.cn/simple复制 &

  • Visual Studio 2017 ASP.NET Core开发

    VisualStudio2017ASP.NETCore开发,VisualStudio2017已经内置ASP.NETCore开发工具. 在选择.NETCore功能安装以后就可以进行ASP.NETCore开发。 新的ASP.NETCore项目为csproj,打开之前的xproj项目,会提示单向升级,确认以后,会自动帮你升级至csproj。   新建项目 VS2017新建ASP.NETCore项目:   确定以后   可选择ASP.NETCore1.0和ASP.NETCore1.1,以及启用Docker支持。 以下是ASP.NETCore1.1启用Docker支持项目结构。 项目就可以运行在Docker上,如果想在Docker调试等须在本地安装Docker。 ASP.NETCore1.1 增加了一些新的特性。比如: WebSockets支持。 安装 Microsoft.AspNetCore.WebSockets包,然后在Startup类Configure方法中添加: app.UseWebSockets(); 具体可以看官方文

  • 文件IO

    title:文件IO date:2019/11/2310:49:52 toc:true 复制 文件IO 目录文件IO文件描述符获取最大支持的描述符open/openat/creatcloselseekoff_t类型说明lseek与OAPPEND的区别内核维护的文件信息dup/dup2FD_CLOEXEC缓存同步到存储标准IO流fcntl改变文件属性ioctl文件截断目录遍历代码附录获取最大文件描述符使用openat来实现一种相对路径的打开lseek测试管道等lseek文件跨越写fcntl获取文件状态 文件描述符 文件描述符是非负的整数,一般是系统调用的,这个与file_struct区别开来.STDIN_FILENO,STDOUT_FILENO,andSTDERR_FILENO被定义在<unistd.h> 获取最大支持的描述符 新的linux已经不支持OPEN_MAX来直接获取这个最大描述符了, sysconf(_SC_OPEN_MAX) 复制 shell下这么查看,其中的openfiles(-n)1024就是了 reallin@ubuntu:/work/pan/apue$u

  • Beginning Asp.Net Security 读书笔记-----XSS

     几个月前通过Veracode对代码进行动态和静态安全扫描,扫出了数以千计的安全bug,基本上都是top10的,安全漏洞.其中CWE80,CWE601数量最多.具体CWE的定义可参考http://cwe.mitre.org/ 。  正好手上有BeginningAsp.NetSecurity这本书,所以就看了看。所有的安全漏洞都源于非法用户的输入,所以任何应用程序或业务系统都需要在一定范围内设置安全边界。    在安全边界以外,接受任何用户输入都应该认为是不安全的,而黑客也是通过用户变量的进行代入达到攻击的目的,所以在接受用户输入的时候需要加入校验。在Asp.Net中对于Request默认是有验证的,在发送任何发送Request的httpruntime时候都会验证请求中的form内容,如果request中有危险字符 我们可以得到如图黄页错误。我们可以通过下面设置取消在httpruntime的验证 •<%@PagevalidateRequest=“false”%> •<system.web><pagesva

  • Error:source 1.5 中不支持 diamond 运算符

    从码云上拉下来一个项目运行的时候,报了错误: 我的jdk是用的1.8,我知道1.8是允许这种写法的,但是为什么会报这个错误呢,我File->ProjectStructure 看到依赖是用的1.8 但是,它明明告诉我,用的是1.5 点开Sources: 发现Languagelevel被指定为1.5,但是在我另外一台电脑上明明是可以的,是什么时候被重新指定为1.5了呢。 研究发现,可能和Maven有关系。 我用的是maven-compiler-plugin:3.1(网络原因,报红,不过和这个没关系) 参考官网的介绍:http://maven.apache.org/plugins-archives/maven-compiler-plugin-3.1/ MavenCompilerPlugin TheCompilerPluginisusedtocompilethesourcesofyourproject.Since3.0,thedefaultcompilerisjavax.tools.JavaCompiler(ifyouareusingjava1.6)andisusedtocom

  • 【js】vue 2.5.1 源码学习 (十一) 模板编译compileToFunctions渲染函数

    大体思路(九) 本节内容: 1.compileToFunctions定位 11.compileToFunctions定位 2==>createCompiler=createCompilerCreator(functionbeasCompile(){})//创建编译器的编译器编译器的爷爷。 3==>beasOptions编译器默认预留选项 4==>createCompiler(beasOptions)创建一个编译器。返回一个对象 5==>{compile:function{},conpileToFunctions:function{}} 6==>compileToFunctions(template,{用户配置和兼容},this) 7==>createCompilerCreator(beasCompile){ 8returnfunctioncreateCompiler(beasOptions){ 9functioncompiler(template,options){ 10//编译器核心方法 11} 12return{ 13compile:comp

  • 前端面试题之手写代码篇 JS手写实现call、apply、bind(超详细)

    前端面试题之手写代码篇:https://loveworld.blog.csdn.net/article/details/117464917?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7-117464917-blog-115253429.t5_landing_title_tags&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7-117464917-blog-115253429.t5_landing_title_tags&utm_relevant_index=13  JS手写实现call、apply、bind(超详细):https://blog.csdn.net/m0_46171043/article/details

  • 《ElasticSearch》课程笔记

    一、《ElasticSearch入门》 https://www.imooc.com/learn/889 笔记:   第3章基础概念 3-1基础概念    

相关推荐

推荐阅读