数据库

zabbix ubuntu 部署

五迷三道 提交于 2020-03-09 20:02:54
安装环境: ubuntu 18.0.4 安装 Server/proxy/前端 安装 Zabbix server 并使用 MySQL 数据库: apt install zabbix-server-mysql 安装 Zabbix proxy 并使用 MySQL 数据库: apt install zabbix-proxy-mysql 安装 Zabbix 前端: apt install zabbix-frontend-php mysql新建zabbix用户 mysql -u root create database zabbix character set utf8 collate utf8_bin; grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; quit; 导入数据 使用 MySQL 来导入 Zabbix server 的初始数据库 schema 和数据, zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix 上面会有几分钟,不要终止!不要终止!不要终止, 如果执行一半出错,可以把mysql中zabbix数据库所有表全部删掉,或者直接删掉zabbix数据库重新建一个

数据库作业5:SQL练习2 - INDEX / INSERT / SELECT

爷,独闯天下 提交于 2020-03-09 18:27:08
今天在数据库的课上学习了SQL语句INDEX,INSERT和SELECT,通过例子的练习来加深对他们的理解。 一、INDEX练习 例题: 【3.13】 CREATE UNIQUE INDEX Stusno ON Student ( Sno ) ; CREATE UNIQUE INDEX Coucno ON Course ( Cno ) ; CREATE UNIQUE INDEX SCno ON SC ( Sno ASC , Cno DESC ) ; ASC表示升序,DESC表示降序,如果没有说明,则默认是为升序ASC。 第一行语句是指在Student表中建立一个索引(按照Sno学号升序),未说明为升序; 第二行语句是指在Course表中建立一个索引(按照Cno课程号升序); 第三行语句是指在SC上建立索引,这里可以注意到后面的列名括号里是有两列的,那这是什么意思呢,学号升序,课程号降序怎么同时排列呢?其实这里的意思是 先将表按照第一个,也就是学号Sno升序ASC排列,然后将在第一个上的取值相同的那些记录,再按照第二个,也就是课程号降序的方式进行排列。 (学号没有相同的吧(°ー°〃)); 【3.14】 (书中语句:) ALTER INDEX SCno RENAME TO SCSno ; --“RENAME”附近有语法错误。 这个例子我没有运行成功。我查了一下资料,有显示,这个时候使用

开始你的第一个Django应用【Python web实战】

杀马特。学长 韩版系。学妹 提交于 2020-03-09 18:18:10
在这篇教程中,我们将设置你的数据库,创建你的第一个模型,并快速介绍Django的自动生成的管理站点。 ps注意很多人学Python过程中会遇到各种烦恼问题,没有人帮答疑容易放弃。为此小编建了个Python全栈免费答疑.裙 :七衣衣九起起巴而五(数字的谐音)转换下可以找到了,不懂的问题有老司机解决里面还有最新Python教程项目可拿,,一起相互监督共同进步! 数据库配置 现在打开 mysite/settings.py 这是一个普通的python模块,模块变量表示Django的设定。 默认情况下,Django配置使用SQLite数据库。如果你是数据库初学者,或者只是感兴趣想随便试试Django,这是最简单的选择。SQLite包含在Python内,因此你不需要安装任何其他东西来支持你的数据库。所以当你开始你的第一个真实项目时,你会想要使用一个更具扩展性的数据库,比如PostgreSQL,以避免数据库切换引发的麻烦。 如果你希望使用其他数据库,安装合适的数据库绑定并且在 DATABASES'default' 项目中修改keys以匹配数据库连接设置: ENGINE 比如 'django.db.backends.sqlite3', 'django.db.backends.postgresql', 'django.db.backends.mysql', or 'django.db

Oracle体系架构 和 导入/导出

僤鯓⒐⒋嵵緔 提交于 2020-03-09 17:23:12
Oracle体系架构 和 导入/导出 服务名,实例名,orcl 1.Oracle通过数据库实例来加载和管理数据库,每个运行的Oracle数据库都对应一个Oracle实例(Instance),也可以称为例程。 2.当数据库服务器上的一个数据库启动时,Oracle将为其分配一块内存区间,叫做系统全局区(SGA),然后启动多个进程。 3.SGA和Oracle进程结合在一起,就是一个Oracle实例。 4.为了区分不同的实例,每个Oracle实例都有一个系统标识符SID,通常SID与数据库同名。 监听文件 服务器端 E:\oracle11g\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora TNS文件 客户端 E:\oracle_client\product\11.2.0\dbhome_1\network\admin\tnsnames.ora 表空间 表的存储文件,E:\oracle11g\oradata\orcl 默认USERS.DBF 文件 权限和角色 1.CONNECT:临时用户,特别是那些不需要创建表的用户,通常赋予该角色。 2.RESOURCE:更为可靠和正式的数据库用户可以授予该角色,可以创建表、触发器、过程等。 3.DBA:数据库管理员角色,拥有管理数据库的最高权限

Mysql索引基本原理

点点圈 提交于 2020-03-09 17:19:53
数据库使用过程当中索引的时候必不可少,合理创建索引可以极大地提升数据查询效率,但是如何索引创建不当也会影响我们的查询效率,如果想使用好索引我们就要来关注一下索引的原理。本文主要讲的mysql索引,且以InnoDB引擎为主,顺带与MyISAM引擎做对比。 1.Mysql表空间、段、区、页 在讲索引的概念之前我们先说一下mysql中段区页的概念。 表空间是Mysql数据库存储的最高层,默认情况下InnoDB引擎只有一个表空间,所有的数据都是存放在这个表空间内。 在表空间下数据是以段区页的形式进行存储的。一张Mysql表存储在数据库当中不是以行为单位存储数据读取的,mysql数据库读取的最小单位是页。 段:一个段是由多个区构成的, 常见的段有数据段、索引段、回滚段等,在InnoDB存储引擎中,对段的管理都是由引擎自身所完成的。 区:一个区是由多个 连续的页组成的空间 ,无论页的大小怎么变动,一个区的默认大小是1M,默认情况下一个区包含64个连续的页,为保证区中的页是连续的 InnoDB会一次从磁盘中申请4~5个区。 页:页也叫做块,默认情况下一个页大小为16K(可以通过 innodb_page_size 参数来设置一个页的大小), 常见的页类型有:数据页,索引页, undo页 ,系统页,事务数据页等。 每页存储最多的行记录也是有硬性规定的最多16KB/2-200,即7992行 。

用DbUnit进行数据库集成测试

北城以北 提交于 2020-03-09 17:10:38
DbUnit 是测试数据库的利器,不过要想弄明白还是需要一番研究。好在它的源代码不多,文档也还算全。我就在此做一个总结吧。 DbUnit.NET是DbUnit的.NET版,不过只推出了alpha版,而且自从06年以后就不再更新了。Stack Overflow上有 一个帖子 ,提出了一些替代方案。 现在的DbUnit要求在测试时继承 DBTestCase ,而不是之前的 DatabaseTestCase (前者继承自后者,而后者继承了junit的 TestCase )。 DatabaseTestCase 包含两个抽象方法, getConnection() 和 getDataSet() ,前者用来获取数据库连接,后者获取要测试的数据集。 数据集 DbUnit可以把所有表的记录存在一个数据集中:既可以是数据库中的表,也可以是文件中的数据。我们在此用 FlatXmlDataSet 来演示。 顺便提一句,DbUnit中还存在另一种格式的数据集 XmlDataSet ,它们的区别如下: 在 FaltXmlDataSet 对应的XML文件里,元素名称对应数据库表名,元素的属性(attribute)对应表的列。如: <dataset> <Person Name="Kirin" Age="31" Location="Beijing"/> <Person Name="Jade" Age="30"/>

数据库RDS for SQL Serve 使用OSS备份文件增量上云流程

眉间皱痕 提交于 2020-03-09 16:40:16
今天这篇文章主要给大家分享基于OSS的增量上云到RDS SQL Server的这样一个功能。这个功能主要适用于以下三个场景: 一、用户希望基于备份文件物理迁移上云RDS SQL Server,而不是逻辑迁移。物理迁移是指基于文件的迁移;逻辑迁移是指将数据生成DML语句映射到RDS SQL Server上。 二、用户希望迁移上云RDS SQL Server后数据库和用户线下的数据库100%的保持一致。这句话可以这样理解,如果用户使用的是逻辑迁移,那么我们是无法做到100%保持一致的。比如用户生成的DML语句插入到RDS SQL Server上来以后,可能会导致索引碎片率和统计信息等和用户的线下数据库不同,这样一来用户上云以后的应用可能会有一些性能问题。 三、用户的业务对停机时间非常敏感,迁移到RDS SQL Server的过程,需要控制在分钟级别。 以上就是三个比较典型的使用增量上云的场景。 下面我们来看一下增量上云的具体流程。 上图是用户把自己的线下数据库增量上云到RDS SQL Server的流程图。从这个图中大家可以看到它实际上包含了四个方面:第一个方面是用户的线下数据库,这个是用户需要参与进来的;第二个方面是用户的OSS Bucket;第三个方面是RDS控制台;第四个就是RDS SQL Server在背后做的一些事情。 首先我们看这个流程图最开始的部分,用户需要做一些准备工作

缓存相关——缓存穿透、缓存并发、缓存失效、缓存预热、缓存雪崩、缓存算法

情到浓时终转凉″ 提交于 2020-03-09 16:38:50
一、缓存穿透 我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样缓存就失去了意义,在流量大时,可能DB就挂掉了。 那这种问题有什么好办法解决呢? 要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。 有一个比较巧妙的作法是,可以将这个不存在的key预先设定一个值。 比如,”key” , “&&”。 在返回这个&&值的时候,我们的应用就可以认为这是不存在的key,那我们的应用就可以决定是否继续等待继续访问,还是放弃掉这次操作。如果继续等待访问,过一个时间轮询点后,再次请求这个key,如果取到的值不再是&&,则可以认为这时候key有值了,从而避免了透传到数据库,从而把大量的类似请求挡在了缓存之中。 二、缓存并发 有时候如果网站并发访问高,一个缓存如果失效,可能出现多个进程同时查询DB,同时设置缓存的情况,如果并发确实很大,这也可能造成DB压力过大,还有缓存频繁更新的问题。 我现在的想法是对缓存查询加锁,如果KEY不存在,就加锁,然后查DB入缓存,然后解锁;其他进程如果发现有锁就等待,然后等解锁后返回数据或者进入DB查询。 这种情况和刚才说的预先设定值问题有些类似,只不过利用锁的方式,会造成部分请求等待。 三、缓存失效

数据库操作:事务处理

夙愿已清 提交于 2020-03-09 16:02:30
并非所有引擎都支持事务处理,MyISAM不支持,InnoDB支持。 事务处理可以用来维护数据库的完整性,它保证成批的MySQL操作要么都执行,要么都不执行。 事务处理是一种机制,用来管理必须成批执行的MySQL操作,以保证数据库不包含不完整的操作结果。利用事务处理,可以保证一组操作不会中途停止,它们或者作为整体执行,或者完全不执行。 相关术语 1.事务(transaction):指一组SQL语句。 2.回退(rollback):指撤销指定SQL语句的过程。 3.提交(commit):指将为存储的SQL语句结果写入数据库表。 4.保留点(savepoint):指事务处理中设置的临时占位符,可以对它发布回退(与回退整个事务处理不同)。 管理事务处理的关键在于将SQL语句组分解为逻辑块,并明确规定数据何时应该回退,何时不应该回退。 START TRANSACTION :标记事务的开始。 ROLLBACK :回退操作。 SELECT * FROM ordertotals; START TRANSACTION; DELETE FROM ordertotals; SELECT * FROM ordertotals; ROLLBACK; SELECT * FROM ordertotals; 第一条语句显示ordertotals表的全部内容,然后开始事务处理

MYSQL数据库如何赋予远程某个IP访问权限

最后都变了- 提交于 2020-03-09 15:14:40
1. 授权用户root使用密码jb51从任意主机连接到mysql服务器: 代码如下: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jb51' WITH GRANT OPTION; flush privileges; 2.授权用户root使用密码jb51从指定ip为218.12.50.60的主机连接到mysql服务器: 代码如下: GRANT ALL PRIVILEGES ON *.* TO 'root'@'218.12.50.60' IDENTIFIED BY 'jb51' WITH GRANT OPTION; flush privileges; 来源: https://www.cnblogs.com/youjianjiangnan/p/12448249.html