一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Database

centos mysql 命令行下执行 sql 文件

命令行下执行 sql 文件有两种方法 一、第一中方法 (未连接数据库) 不推荐这样使用 因为在密码带有特殊字符时会报错

二、第二中方法(已链接数据库 当提示符为 mysql> 时) 这里的 yourDatavase 为你的数据库名 filepath 为 sql 文件的绝对路径

附: 一、命令行下创建数据库

二、命令行下创建数据表 下面的 id、title、author、date 这些字段根据实际需求填写

三、删除数据库 yourDatabaseName 为你要删除的数据库名

  四、删除数据表 yourTableName 为你要删除的数据表名

  五、允许远程连接mysql数据库

允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。 注意admin账户不一定要存在。   六、修改表引擎方法

其它数据库操作请自行查询   from:https://blog.csdn.net/ming_xiaoxiami/article/details/81905388

龙生   24 Sep 2019
View Details

ClustrixDB-高级架构概述

ClustrixDB是一种集群式RDBMS,可确保事务处理符合ACID特性,同时可轻松的提供可扩展性和容错能力。 ClustrixDB集群由三个或更多节点(联网的同构服务器)组成。 ClustrixDB使用无共享架构。集群中的每个节点可以执行任何读取或写入操作。如果要扩充数据库容量,只需添加更多节点即可。 ClustrixDB的主要组件有助于实现性能和规模: 1)全局事务管理器(GTM),协调给定事务的处理。 2)Rebalancer,它在集群中自动分配数据。 3)  Sierra数据库引擎,确定最佳查询执行计划,然后在分布式数据节点上执行该计划。 下图显示了ClustrixDB如何处理典型的查询。 全局事务管理器 通常通过横跨集群上分布式连接的负载均衡器,选择集群中的一个节点作为全局事务管理器(GTM)来开始处理ClustrixDB中的查询。然后在返回结果给调用者之前,GTM通过控制执行查询的每个一步、确认每一步成功完成、收集和确定执行结果等来全面管理事务。 ClustrixDB将查询编译为可执行查询片段,GTM将其分发到适当的节点以供执行。当中间结果可用时,它们将返回给GTM。一旦所有查询片段都已成功执行,GTM就完成结果并将它们返回给客户端,应用程序或用户。 Rebalancer 如果ClustrixDB的数据以前未在整个集群中分布,则不可能进行分布式处理。为了实现这一点,ClustrixDB使用了由其Rebalancer管理的专利数据分配方法。Rebalancer在集群中编排数据,以确保读取和写入始终平衡。它还保证在整个集群中维护数据的多个副本(副本)以确保容错。如果节点由于意外故障而丢失,则不会丢失任何数据。Rebalancer将自动确保创建和维护冗余副本。它还通过在添加新节点时将数据重新平衡到新节点并且在数据库保持在线的同时将数据从标记为要移除的节点移开而适应集群集大小的改变。 Rebalancer使用一致的散列算法将每个表行分配给该表的给定“切片”,并提供所有切片到每个节点的映射。这允许ClustrixDB快速轻松地确定相关数据的位置。Rebalancer在后台连续运行,不会影响正在进行的数据处理。 虽然数据被切片并分发到集群的许多节点,但是数据库表将始终作为应用程序的单个逻辑单元出现。Clustrix使用简单的SQL接口,并且不需要特殊的应用程序编程来访问分布在整个ClustrixDB集群中的数据。 如果ClustrixDB的数据以前未在整个集群中分布,则不可能进行分布式处理。为了实现这一点,ClustrixDB使用由其Rebalancer管理的专利数据分配方法。Rebalancer在集群中安排数据,以确保读取和写入始终平衡。它还保证在整个集群中维护数据的多个副本(副本)以确保容错。如果节点由于意外故障而丢失,则不会丢失任何数据。重新平衡器将自动确保创建和维护冗余副本。它还通过在添加新节点时将数据重新平衡到新节点并且在数据库保持在线的同时将数据从标记为要移除的节点移开而适应群集的改变大小。 Rebalancer使用一致的散列算法将每个表行分配给该表的给定“切片”,并提供所有切片到每个节点的映射。这允许ClustrixDB快速轻松地确定相关数据的位置。再平衡器在后台连续运行,不会影响正在进行的生产加工。 下面这张图片展示了Rebalancer如何横跨各个节点的的’切片’和表复制。请注意表的复制是如何分散在整个集群中的,以确保容错。在不同节点上的每个表切片至少是按时及复制的。 您可以看到在节点故障的情况下如何保护数据。如果节点故障,ClustrixDB将立即开始使用来自其他节点的故障节点数据的副本。然后Rebalancer立即开始通过将新副本复制到不同的节点上来重新定位该数据节点。 欲知详情请移步ClustrixDB’s Rebalancer。 Sierra数据库引擎 Sierra是处理查询计划和执行的ClustrixDB的SQL引擎。它专门设计用于在分布式、无共享(shared nothing)环境中工作,同时尽可能高效地访问分布式数据。Sierra数据库引擎由两部分组成: 1)Sierra Parallel Planner  确定SQL语句的最佳执行计划。 2)Sierra分布式执行引擎  根据计划执行查询片段,并提供中间结果。 Sierra Parallel Planner是一种基于成本的优化器,它使用概率统计,数据量,索引和查询运算符的开销来确定最有效的查询计划。 ClustrixDB Planner 的一个关键区别功能是它确定此计划,同时考虑数据在集群中的分布。 有关演示此查询分段如何工作的其他示例,请参阅ClustrixDB Sierra Database Engine.   Sierra分布式执行引擎 一旦Sierra Planner确定了查询的最佳计划,它就被编译成机器可执行的查询片段。然后,这些编译的查询片段在集群中的不同节点上执行,提供了效率和增加的执行并发性。一旦每个节点上的执行完成,结果就返回到GTM节点,GTM节点然后组合部分结果并将最终结果集返回给用户。 ClustrixDB如何能够独特地利用其分布式执行以实现更快的结果的一个示例是分布式聚合处理。除了首先对每个节点的分布式数据上的数据计算部分聚合(SUM,MAX,MIN,AVG等)之外,计算类似于其它查询被分段和分布。中间结果然后由GTM合并以产生最终结果。 最后再让我们来看下在ClustrixDB中的分布查询。   结论 ClustrixDB使用自动数据分发,复杂的查询计划器和分布式执行模型,以在符合ACID的RDBMS中提供可扩展性和并发性。为了实现这一点,ClustrixDB使用了许多与其他大规模并行处理(MPP)数据库使用的相同的技术:它使用Paxos进行分布式事务解析,并使用多版本并发控制(MVCC)来防止事务冲突。借助上述主要组件,ClustrixDB为这种分布式执行提供了一个简单的SQL接口,同时还提供了可扩展性,效率和容错能力。   from:https://blog.csdn.net/luoduyu/article/details/53997249

龙生   23 Jul 2019
View Details

maxscale

一.maxscale简介 1.MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换。 2.官网: https://mariadb.com/kb/en/mariadb-enterprise/mariadb-maxscale-20/ 二.安装 1.安装可以通过rpm安装 2.可以直接下载文件放入指定目录,本次采用第二种方法 1 2 3 4 5 #wget https://downloads.mariadb.com/MaxScale/2.0.2/centos/5Server/x86_64/maxscale-2.0.2.centos.5.tar.gz #tar zxvf maxscale-2.0.2.centos.5.tar.gz #mkdir /usr/local/maxscale #mv ./maxscale-2.0.2/* /usr/local/maxscale/ #cp /usr/local/maxscale/etc/maxscale.cnf.template /etc/maxscale.cnf   修改启动脚本,使其可以提供service服务 1 2 #cp /usr/local/maxscale/share/maxscale/maxscale /etc/init.d/maxscale #vi /etc/init.d/maxscale 将脚本中的///bin替换为/usr/local/maxscale/bin/maxscale 这将可以使用 service maxscale start|stop|restart启动停止或重启maxscale 三.账户配置 1.在主从库上授权两个账户 a.监视账户 1 2 create user maxscale_monitor@’192.168.1.%' identified by "123456"; grant replication slave, replication client on *.* to maxscale_monitor@’192.168.1.%';   b.路由账户

四.读写分离配置 0.vi /etc/maxscale.cnf 基本配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 […]

龙生   29 Mar 2019
View Details

Redis服务停止报错解决方案[NOAUTH Authentication required]

Redis服务器设置密码后,使用service redis stop 会出现以下信息: service redis stop Stopping … OK (error) NOAUTH Authentication required. Waiting for Redis to shutdown … Waiting for Redis to shutdown … Waiting for Redis to shutdown … Waiting for Redis to shutdown … Waiting for Redis to shutdown … Waiting for Redis to shutdown … Waiting for Redis to shutdown … Waiting for Redis to shutdown … 出现这样的错误信息,redis 这时是没有停止服务的。可以使用ps -ef | grep redis  查进程号 然后kill 掉,如果在deamon下还需要去删除pid文件,有点繁琐。 解决办法: 用redis-cli 密码登陆(redis-cli -a  password)就OK了。 再用ps -ef | grep redis 可以看到redis进程已经正常退出。 修改redis服务脚本,加入如下所示的红色授权信息即可: vi /etc/init.d/redis $CLIEXEC -a "password" -p $REDISPORT shutdown from:https://www.cnblogs.com/jeffen/p/6068745.html

龙生   23 Mar 2019
View Details

CENTOS7下安装REDIS

一、安装redis 第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz

  第二步:解压压缩包 tar -zxvf redis-4.0.6.tar.gz

  第三步:yum安装gcc依赖 yum install gcc

遇到选择,输入y即可   第四步:跳转到redis解压目录下 cd redis-4.0.6

  第五步:编译安装 make MALLOC=libc

  将/usr/local/redis-4.0.6/src目录下的文件加到/usr/local/bin目录 cd src && make install

  二、启动redis的三种方式   先切换到redis src目录下

  1、直接启动redis ./redis-server

  如上图:redis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。   按 ctrl + c可以关闭窗口。   2、以后台进程方式启动redis 第一步:修改redis.conf文件 将

  修改为

  第二步:指定redis.conf文件启动 1 ./redis-server /usr/local/redis-4.0.6/redis.conf

  第三步:关闭redis进程 首先使用ps -aux | grep redis查看redis进程

  使用kill命令杀死进程

    3、设置redis开机自启动 1、在/etc目录下新建redis目录 mkdir redis

  2、将/usr/local/redis-4.0.6/redis.conf 文件复制一份到/etc/redis目录下,并命名为6379.conf

[…]

龙生   23 Mar 2019
View Details

MaxScale:实现MySQL读写分离与负载均衡

 1MaxScale 是干什么的? 配置好了MySQL的主从复制结构后,我们希望实现读写分离,把读操作分散到从服务器中,并且对多个从服务器能实现负载均衡。 读写分离和负载均衡是MySQL集群的基础需求,MaxScale就可以帮着我们方便的实现这些功能。  2MaxScale 的基础构成 MaxScale 是MySQL的兄弟公司MariaDB 开发的,现在已经发展得非常成熟。MaxScale 是插件式结构,允许用户开发适合自己的插件。 MaxScale 目前提供的插件功能分为5类: 认证插件 提供了登录认证功能,MaxScale 会读取并缓存数据库中 user 表中的信息,当有连接进来时,先从缓存信息中进行验证,如果没有此用户,会从后端数据库中更新信息,再次进行验证 协议插件 包括客户端连接协议,和连接数据库的协议 路由插件  决定如何把客户端的请求转发给后端数据库服务器,读写分离和负载均衡的功能就是由这个模块实现的 监控插件 对各个数据库服务器进行监控,例如发现某个数据库服务器响应很慢,那么就不向其转发请求了 日志和过滤插件 提供简单的数据库防火墙功能,可以对SQL进行过滤和容错 3MaxScale 的安装使用 例如有 3 台数据库服务器,是一主二从的结构。  过程概述 (1)配置好集群环境 (2)下载安装 MaxScale (3)配置 MaxScale,添加各数据库信息 (4)启动 MaxScale,查看是否正确连接数据库 (5)客户端连接 MaxScale,进行测试  详细过程 (1)配置一主二从的集群环境 准备3台服务器,安装MySQL,配置一主二从的复制结构。 (2)安装 MaxScale 最好在另一台服务器上安装,如果资源不足,可以和某个MySQL放在一起。 MaxScale 的下载地址: https://downloads.mariadb.com/files/MaxScale 根据自己的服务器选择合适的安装包。 以 centos 7 为例 安装步骤如下: yum install libaio.x86_64 libaio-devel.x86_64 novacom-server.x86_64 libedit -y rpm -ivh maxscale-1.4.3-1.centos.7.x86_64.rpm 如果依赖无法安装,请使用yum安装 gnutls即可 (3)配置 MaxScale 在开始配置之前,需要在 master 中为 MaxScale 创建两个用户,用于监控模块和路由模块。 创建监控用户 mysql> create user scalemon@’%' identified by "111111"; mysql> grant replication slave, replication client on *.* to […]

龙生   22 Mar 2019
View Details

mysql分布式数据库中间件对比

目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的。所以总结一个关于中间件比较的系列,希望可以对大家有帮助。 1. 什么是中间件 传统的架构模式就是 应用连接数据库直接对数据进行访问,这种架构特点就是简单方便。 但是随着目前数据量不断的增大我们就遇到了问题: 单个表数据量太大 单个库数据量太大 单台数据量服务器压力很大 读写速度遇到瓶颈 当面临以上问题时,我们会想到的第一种解决方式就是 向上扩展(scale up) 简单来说就是不断增加硬件性能。这种方式只能暂时解决问题,当业务量不断增长时还是解决不了问题。特别是淘宝,facebook,youtube这种业务成线性,甚至指数级上升的情况 此时我们不得不依赖于第二种方式: 水平扩展 。 直接增加机器,把数据库放到不同服务器上,在应用到数据库之间加一个proxy进行路由,这样就可以解决上面的问题了。 2. 中间件与读写分离 很多人都会把中间件认为是读写分离,其实读写分离只是中间件可以提供的一种功能,最主要的功能还是在于他可以 分库分表 ,下面是一个读写分离的示意图: 上面的图可以看出,红线代表写请求,绿线代表读请求。这就是一个简单的读写分离,下面我们在看看分库分表中间件。 上面这幅图就可以看出中间件作用,比如下面的这个SQL: [sql] view plain copy <span class="operator" style=""><span class="keyword" style="">select</span> * <span class="keyword" style="">from</span> table_name <span class="keyword" style="">where</span> id = <span class="number" style="">1</span>;</span>   按照中间件分库分表算法,此SQL将发送到DB1节点,由DB1这个MySQL负责解析和获取id=1的数据,并通过中间件返回给客户端。而在读写分离结构中并没有这些分库分表规则, 他只能在众多读节点中load balance随机进行分发,它要求各个节点都要存放一份完整的数据。 3.各类中间件比较 目前市面上中间件种类很多种 先看下各种中间件背景: Cobar: 阿里巴巴B2B开发的关系型分布式系统,管理将近3000个MySQL实例。 在阿里经受住了考验,后面由于作者的走开的原因cobar没有人维护 了,阿里也开发了tddl替代cobar。 MyCAT: 社区爱好者在阿里cobar基础上进行二次开发,解决了cobar当时存 在的一些问题,并且加入了许多新的功能在其中。目前MyCAT社区活 跃度很高,目前已经有一些公司在使用MyCAT。总体来说支持度比 较高,也会一直维护下去, OneProxy: 数据库界大牛,前支付宝数据库团队领导楼总开发,基于mysql官方 的proxy思想利用c进行开发的,OneProxy是一款商业收费的中间件, 楼总舍去了一些功能点,专注在性能和稳定性上。有朋友测试过说在 高并发下很稳定。 Vitess: 这个中间件是Youtube生产在使用的,但是架构很复杂。 与以往中间件不同,使用Vitess应用改动比较大要 使用他提供语言的API接口,我们可以借鉴他其中的一些设计思想。 Kingshard: Kingshard是前360Atlas中间件开发团队的陈菲利用业务时间 用go语言开发的,目前参与开发的人员有3个左右, 目前来看还不是成熟可以使用的产品,需要在不断完善。 Atlas: 360团队基于mysql proxy 把lua用C改写。原有版本是支持分表, 目前已经放出了分库分表版本。在网上看到一些朋友经常说在高并 发下会经常挂掉,如果大家要使用需要提前做好测试。 MaxScale与MySQL Route: 这两个中间件都算是官方的吧,MaxScale是mariadb (MySQL原作者维护的一个版本)研发的,目前版本不支持分库分表。 MySQL Route是现在MySQL 官方Oracle公司发布出来的一个中间件。 这两个中间件后面也会跟进测试下,看下效果如何。 4. 结语 这里主要是简单介绍了下各种中间件由来和特点,后面文章会陆续介绍各个中间件更详细的特性,优缺点,性能测试结果。   from:https://www.cnblogs.com/zzsdream/articles/6650690.html

龙生   22 Mar 2019
View Details

Mycat从入门到放弃

当初写这篇文章的初衷只是想提醒自己在用一个开源产品前不仅要了解其提供的功能,更要了解其功能和场景边界。 1.非分片字段查询 Mycat中的路由结果是通过分片字段和分片方法来确定的。例如下图中的一个Mycat分库方案: 根据 tt_waybill 表的 id 字段来进行分片 分片方法为 id 值取 3 的模,根据模值确定在DB1,DB2,DB3中的某个分片 如果查询条件中有 id 字段的情况还好,查询将会落到某个具体的分片。例如: mysql>select * from tt_waybill where id = 12330; 此时Mycat会计算路由结果 12330 % 3 = 0 –> DB1 并将该请求路由到DB1上去执行。 如果查询条件中没有 分片字段 条件,例如: mysql>select * from tt_waybill where waybill_no =88661; 此时Mycat无法计算路由,便发送到所有节点上执行: DB1 –> select * from tt_waybill where waybill_no =88661; DB2 –> select * from tt_waybill where waybill_no =88661; DB3 –> select * from tt_waybill where waybill_no =88661; 如果该分片字段选择度高,也是业务常用的查询维度,一般只有一个或极少数个DB节点命中(返回结果集)。示例中只有3个DB节点,而实际应用中的DB节点数远超过这个,假如有50个,那么前端的一个查询,落到MySQL数据库上则变成50个查询,会极大消耗Mycat和MySQL数据库资源。 如果设计使用Mycat时有非分片字段查询,请考虑放弃! 2.分页排序 先看一下Mycat是如何处理分页操作的,假如有如下Mycat分库方案: 一张表有30份数据分布在3个分片DB上,具体数据分布如下 DB1:[0,1,2,3,4,10,11,12,13,14] DB2:[5,6,7,8,9,16,17,18,19] DB3:[20,21,22,23,24,25,26,27,28,29] (这个示例的场景中没有查询条件,所以都是全分片查询,也就没有假定该表的分片字段和分片方法) 当应用执行如下分页查询时 mysql>select * from table limit 2; Mycat将该SQL请求分发到各个DB节点去执行,并接收各个DB节点的返回结果 […]

龙生   22 Mar 2019
View Details

sysbench的安装详解

sysbench是一个压力测试工具、可以用它来测试cpu、mem、disk、thread、mysql、postgr、oracle;然而作为一个mysql dba 我当然是用它来压测mysql啦!   一、从哪里可以下载到sysbench: sysbench的源码可以在github上面下载的到,sysbench的主页

  二、sysbench的一些安装依赖:

在我的机器上已经安装上了mysql相关的所有包,如果你机器上还没有安装过这些,那你还要安装上mysql的开发包,由于系统自带mariadb 这个mysql分支,所以在安装mysql-devel时应该是安装mariadb-devel   三、安装sysbench: 1  进入到sysbench源码目录

2  执行autogen.sh用它来生成configure这个文件

3  执行configure && make && make install 来完成sysbench的安装

我这里之所以要这样写是因为我的mysql安装在/usr/local/;而不是默认的rpm的安装位置   四、测试是否安装成功:

到目前为止sysbench的安装就算是完成了!   五、sysbench的帮助内容如下:

  六、sysbench对数据库进行压力测试的过程: 1  prepare 阶段 这个阶段是用来做准备的、比较说建立好测试用的表、并向表中填充数据。 2  run       阶段 这个阶段是才是去跑压力测试的SQL 3  cleanup 阶段 这个阶段是去清除数据的、也就是prepare阶段初始化好的表要都drop掉   七、sysbench 中的测试类型大致可以分成内置的,lua脚本自定义的测试: 1、内置: fileio 、cpu 、memory 、threads 、 mutex 2、lua脚本自定义型: sysbench 自身内涵了一些测试脚本放在了安装目录下的:

  八、通过sysbench自带的lua脚本对mysql进行测试: 1、第一步 prepare

2、第二步 run

3、第三步 cleanup

  from:https://www.cnblogs.com/JiangLe/p/7059136.html

龙生   22 Mar 2019
View Details

sqlite常用操作语句

PRAGMA foreign_keys = 0; CREATE TABLE sqlitestudio_temp_table AS SELECT * FROM Websites; DROP TABLE Websites; CREATE TABLE Websites ( WebsiteId INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, WebsiteName VARCHAR (255), WebsiteDirectory VARCHAR (255), DbType INT DEFAULT (0), DbName VARCHAR (100), DbUid VARCHAR (50), DbPwd VARCHAR (30), BackupDirectory VARCHAR (255), BackupDateTime DATETIME, AddDateTime DATETIME ); INSERT INTO Websites ( WebsiteId, WebsiteName, WebsiteDirectory, DbType, DbName, DbUid, DbPwd, BackupDirectory, BackupDateTime, AddDateTime ) SELECT WebsiteId, WebsiteName, WebsiteDirectory, DbType, DbName, DbUid, DbPwd, BackupDirectory, BackupDateTime, AddDateTime FROM sqlitestudio_temp_table; DROP TABLE sqlitestudio_temp_table; PRAGMA foreign_keys = 1;

龙生   18 Feb 2019
View Details
1 9 10 11 40