精华内容
下载资源
问答
  • linux 安装达梦数据库

    2018-11-30 15:32:23
    环境:系统:红帽linux企业版4(红旗LINUX也是一样,会更简单) jakarta-tomcat-5.0.28.tar.gz(二进制源码) jdk-1_5_0_15-linux-i586-rpm.bin(RPM包) 达梦数据库
  • 达梦数据库 linux简单操作

    千次阅读 2020-10-14 20:01:17
    6.1 登录 ... [root@DM bin]# cd /data/dm/dmdbms/bin [root@DM bin]# ./disql disql V8.1.0.147-Build(2019.03.27-104581)ENT ...服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间: 4.146(毫秒) ...

    6.1  登录

    使用disql命令登录处理,管理账号SYSDBA的默认密码也是SYSDBA

    [root@DM bin]# cd /data/dm/dmdbms/bin
    [root@DM bin]# ./disql
    disql V8.1.0.147-Build(2019.03.27-104581)ENT 
    用户名:SYSDBA
    密码:
    
    服务器[LOCALHOST:5236]:处于普通打开状态
    登录使用时间: 4.146(毫秒)
    SQL>

    或者 直接在命令行里指定地址、端口、用户名和密码

    [root@DM bin]# ./disql SYSDBA/SYSDBA@192.168.56.33:5236
    
    服务器[192.168.210.33:5236]:处于普通打开状态
    登录使用时间: 3.947(毫秒)
    disql V8.1.0.147-Build(2019.03.27-104581)ENT 
    SQL>

    6.2  表空间管理

    /**  创建表空间 */
    SQL> create tablespace  jc_data datafile '/data/dm/data/testdb/JC_DATA01.DBF' size 1024 autoextend on next 20 maxsize 10240 CACHE = NORMAL;
    操作已执行
    已用时间: 47.190(毫秒). 执行号:866.
    
    /**  扩展指定的表空间 */
    SQL> alter tablespace  jc_data add  datafile  '/data/dm/data/testdb/JC_DATA02.DBF' size 1024 autoextend on ;
    操作已执行
    已用时间: 11.080(毫秒). 执行号:867.

    看上去和ORACLE的语法几乎一致。

    6.3  添加用户

    /**   创建用户  */
    SQL> create user JC identified by "JC_Test123" default tablespace jc_data  default index tablespace JC_DATA;
    操作已执行
    已用时间: 3.809(毫秒). 执行号:868.
    
    /**  授权 */
    SQL> grant DBA  to JC;
    操作已执行
    已用时间: 1.432(毫秒). 执行号:869.

    6.4  创建表及索引

    /**  创建表,注意主键的语法 */
    SQL> create table jc.test1(id int not null,name varchar(20), age int ,cluster primary key (id));
    操作已执行
    已用时间: 1.938(毫秒). 执行号:870.
    
    /**  添加索引 */
    SQL> create index idx_test1_name on jc.test1(name);
    操作已执行
    已用时间: 4.112(毫秒). 执行号:871.

    https://www.cnblogs.com/gjc592/p/11672860.html

     

    展开全文
  • Linux下访问数据库

    万次阅读 2019-08-02 22:40:33
    声明:本文只简单描述Linux系统下访问mysql数据库的步骤,关于连接上数据库之后的简单的对于数据库的增删改查等操作只是稍微提及,关于增删改查的语句书写,本文不再讲述。 一般来说,访问数据库有如下几个步骤:...

    Linux下访问数据库

             声明:本文只简单描述Linux系统下访问mysql数据库的步骤,关于连接上数据库之后的简单的对于数据库的增删改查等操作只是稍微提及,关于增删改查的语句书写,本文不再讲述。

             一般来说,访问数据库有如下几个步骤:

             1.初始化mysql环境

             2.连接数据库

             3.执行sql语句

             4.获取查询结果

             5.显示结果

             6.关闭数据库

             7.释放mysql环境

             针对以上7个步骤,接下来重点描述以下者7个步骤中所需要做的工作和所使用到的函数。

    1.初始化mysql环境

             作为连接数据库前的准备工作,这个步骤要做的事情其实还是很多的。首先需要创建MYSQL变量,用来存储与连接有关的数据信息。其结构体的结构非常复杂,不需要过多的理解。在实际使用时有着其固定的使用方法,只需记住就行。

    typedef struct st_mysql 
    {
        NET net;           
        gptr connector_fd; 
        char *host, *user,*passwd,*unix_socket,*server_version, *host_info,*info,*db;
        unsigned int port,client_flag,server_capabilities;
        unsigned int protocol_version;
        unsigned int field_count;
        unsigned int server_status;
        unsigned long thread_id;      
        my_ulonglong affected_rows;
        my_ulonglong insert_id;       
        my_ulonglong extra_info;              
        unsigned long packet_length;
        enum mysql_status status;
        MYSQL_FIELD *fields;
        MEM_ROOT field_alloc;
        my_bool free_me;       
        my_bool reconnect;    
        struct st_mysql_options options;
        char scramble_buff[9];
        struct charset_info_st *charset;
        unsigned int server_language;
    }MYSQL;

             除此之外,此阶段还有两个函数也至关重要,mysql_init()函数和mysql_library_init()函数。

    MYSQL *mysql_init(MYSQL *mysql);

    功能:用来初始化一个连接句柄

    若函数成功执行,则返回一个MYSQL类型的指针,失败则返回NULL。

    int mysql_library_init(int argc,char **argv,char **groups);

    功能:用来初始化mysql库

    关于这两个函数的参数含义此处不做解释,因为本鸟也不知道,唯一知道的就是这么用就对了,实际使用时给三个参数赋值为0,NULL,NULL,具体使用方法会在最后的案例中提及。

    还有一个与mysql_library_init()函数相对应的函数mysql_library_end(),用来关闭服务器端数据库。这两个函数必须放在一起使用,先初始化,最后再关闭数据库,如果只初始化不关闭,那么之前申请的一块内存将会一直存在,容易导致内存泄漏。

    2.连接数据库

             连接数据库部分涉及到两个函数,分别是mysql_real_connect()函数和mysql_select_db()函数。

    MYSQL* mysql_real_connect(MYSQL *mysql,const char* host,const char *user,const char * *passwd,const char *db,unsigned int port,const char*unix_socket,unsigned long clientflag);

    功能:用来连接数据库

    参数说明:

    mysql:之前定义的MYSQL变量

    host:MYSQL服务器的地址

    user:登陆用户名

    passwd:登陆密码

    db:要连接的数据库

    port:MYSQL服务器的TCP服务端口

    unix_socket:unix连接方式,为NULL时表示不使用socket或管道机制

    clientflag:mysql运行为ODBC数据库的标记,一般取0

    返回值:成功,返回*mysql指针,失败,返回NULL

             此函数的参数较多,实际使用时不会给每个参数都赋值的,只需要记住最常被赋值的几个参数即可。

    int mysql_select_db(MYSQL *mysql,const char *db);

    功能:使得由db指定的数据库成为由mysql指定的连接上的默认数据库

    返回值:成功,返回0;失败,返回一个非0值。

    错误代码:

    CR_COMMANDS_OUT_OF_SYNC:以不恰当的顺序执行了命令

    CR_SERVER_GONE_ERROR:mysql服务器不可用

    CR_SERVER_LOST:在查询过程中与服务器的连接丢失

    CR_UNKNOWN_ERROR:出现未知错误

    3.执行sql语句

             当数据库连接成功之后就可以对数据库中的数据进行增删改查等操作了,这些增删改查的语句本鸟不再书写,相信大家都会吧。但是,这些语句并不是独自出现的,而是把它存储在一个缓冲区里,作为函数参数使用,此函数为:

    int mysql_query(MYSQL *mysql,const char *q);

    功能:执行sql语句

    参数:第一个参数为mysql结构体,第二个参数为操作命令。

             还有一个可用来执行sql语句的函数:

    int mysql_real_query(MYSQL *mysql,const char *query,unsigned long length);

    功能:进行数据库查询。执行由query指向的sql查询,正常情况下,字符串必须包含一条sql语句,而且不应该为语句添加终结分号。

    参数说明:

    mysql:MYSQL变量

    query:查询语句

    length:查询语句的长度

             以上两个函数都是用来进行数据库查询的函数。不同之处在于,对于包含二进制数据的查询,必须使用mysql_real_query()函数,这是因为  二进制数据可能会包含‘\0’字符,同时,mysql_real_query()函数执行速度快,这是因为此函数不会在查询字符串上调用strlen()函数。

             执行sql语句后,我们通过调用mysql_store_result()或mysql_use_result()函数返回的MYSQL_RES变量获取查询结果数据。

    MYSQL_RES *mysql_store_result(MYSQL *mysql);
    MYSQL_RES *mysql_use_result(MYSQL *mysql);

    这两个函数分别代表了获取查询结果的两种方式。

             第一种,调用mysql_store_result()函数将从mysql服务器查询的所有数据都存储到客户端,然后读取;

             第二种,调用mysql_use_result()初始化检索,以便于后面一行一行的读取结果集,而它本身并没有从服务器读取任何数据,这种方式较之第一种速度更快且所需内存更少,但它会绑定服务器,阻止其他线程更新任何表,而且必须重复执行mysql_fetch_row()读取数据,直至返回NULL,否则未读取的行会在下一次查询时作为结果的一部分返回,故经常我们使用mysql_store_result()。

    4.获取查询结果

             我们把执行完sql语句的返回的结果称为结果集,其用一个MYSQL_RES结构体来存储。本部分的主要内容就是从返回的结果集里获取查询结果。

    typedef struct st_mysql_res 
    {
        my_ulonglong row_count;
        unsigned int field_count, current_field;
        MYSQL_FIELD *fields;
        MYSQL_DATA *data;
        MYSQL_ROWS *data_cursor;
        MEM_ROOT field_alloc;
        MYSQL_ROW row;           
        MYSQL_ROW current_row;   
        unsigned long *lengths; 
        MYSQL *handle;      
        my_bool eof;         
    }MYSQL_RES;

             这样的结构体着实令本鸟头大。

             我们执行sql语句后的结果就存储在这样一个结构体中,但是我们要想从这个结构体中获取到,或者说提取出我们需要的信息,则就必须使用MYSQL_FIELDMYSQL_ROWS结构体来获取。这个结构体包含着结果集中的字段名、字段类型、字段大小等信息,可以通过重复调用mysql_fetch_fields()函数来获得所有字段的信息,即列信息或列数据。

    typedef struct st_mysql_field 
    {
        char *name;                  
        char *table;                 
        char *def;                    
        enum enum_field_types type;  
        unsigned int length;         
        unsigned int max_length;    
        unsigned int flags;         
        unsigned int decimals;  
    } MYSQL_FIELD;
    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *res);

    功能:读取结果集字段

             与之对应的是MYSQL_ROWS结构体里的mysql_fetch_row()函数,此函数用来获得结果集中的行信息。

    MYSQL_ROW *mysql_fetch_row(MYSQL_RES *res);

    功能:读取结果集数据

    返回值:该函数返回MYSQL_ROW型的变量,即字符串数组,假设其为row,则row[i]为第i个字段的值,当到结果集尾部时,此函数返回NULL。

             刚才说到mysql_fetch_row()函数是用来获取数据集中的数据信息,它只能一行一行的来获取,所以还得有个函数用来统计结果集中的行数。同样的,也得用一个函数来获取结果集中的字段的数量。

    unsigned int mysql_num_fields(MYSQL_RES *res);

    功能:获取结果集中字段的数量

    unsigned int mysql_num_rows(MYSQL_RES *res);

    功能:获取结果集中行数

             结果集使用完毕后,还需释放掉结果集,避免内存泄漏。

    void mysql_free_result(MYSQL_RES *res);

    5.关闭数据库

             不需要继续查询mysql数据库时,应及时关闭数据库连接。

    void mysql_close(MYSQL *sock);

             sock为连接函数返回的变量。

    6.释放mysql环境

             在初始化阶段中提到了一个与mysql_library_init()函数相对应的函数mysql_library_end(),此函数用来及时释放mysql环境,来终止使用mysql数据库。

    案例:MysqlDemo.c

             本案例主要是通过远程访问数据库来对数据库里的数据信息进行增删改查等操作。在正式编码之前,我们首先需要直到关于本案例所要用到的数据库的基本信息。本案例所使用的数据库为StaffDB,该数据库里有3张表,分别为Department(部门)、Work(职务)、Staff(员工信息),每张表的结构和数据如下所示:

    Department(部门):

    Work(职务):

    Staff(员工):

             这3张表的截图都是在Windows系统下所截取的,我们就是要通过案例来对这些数据加以操作。

    MysqlDemo.c

    #include <stdio.h>
    #include <unistd.h>
    #include <string.h>
    #include <mysql/mysql.h>
    
    //查询
    int Select_sql(MYSQL *p_sock)
    {
        //声明缓冲区并初始化
        char buffer[1024]={0};
        memset(buffer,0x00,1024);
        snprintf(buffer,sizeof(buffer),"%s","select * from Department");
        //执行sql语句
        int ret = mysql_query(p_sock,buffer);
        if(ret != 0)
        {
            printf("查询错误:%s\n",mysql_error(p_sock));
            return -1;
        }
        
        //结果集
        MYSQL_RES *res;
        //数据行
        MYSQL_ROW row;
        //记录结果的行数
        int rows = 0;
        //记录结果的列数
        int columns = 0;
        //获取查询结果
        res = mysql(store_result(p_sock));
        if(res == NULL)
        {
            printf("获取结果集错误:%s\n",mysql_error(p_sock));
            return -1;
        }
        //获取查询结果的行数
        rows = mysql_num_rows(res);
        if(rows < 0)
        {
            printf("获取查询结果的行数错误:%s\n",mysql_error(p_sock));
            return -1;
        }
        if(rows == 0)
        {
            printf("该查询结果中无数据!\n");
            return 0;
        }
    
        //获取查询结果的列数
        columns = mysql_num_fields(res); 
        if(rows < 0)
        {
            printf("获取查询结果的列数错误:%s\n",mysql_error(p_sock));
            return -1;
        }
    
        //获取每一行数据
        while((row = mysql_fetch_row(res)) != NULL)
        {
            int i;
            for(i = 0;i < columns;i++)
            {
                printf("%s\t",rows[i]);
            }
            printf("\n");
        }
    
        //释放结果集所占用的空间
        mysql_free_result(res);
        return 0;}
    }
    
    //插入
    int Insert_sql(MYSQL *p_sock)
    {
        char buffer[1024] = {0};
        //sql语句
        memset(buffer,0x00,1024);
        snprintf(buffer,1023,"%s","insert into Department(Department_id,Department_name,Remark) value('D07','综合部','综合部')");
        //执行sql语句
        if(mysql_query(p_sock,buffer) != 0)
        {
            perror("mysql_query");
            return -1;
        }
        return 0;
    }
    
    //更新
    int Update_sql(MYSQL *p_sock)
    {
        char buffer[1024] = {0};
        //sql语句
        memset(buffer,0x00,1024);
        snprintf(buffer,1023,"%s","update Department set Remark = "综合管理" where Department_id = 'D07'");
        //执行sql语句
        if(mysql_query(p_sock,buffer) != 0)
        {
            perror("mysql_query");
            return -1;
        }
        return 0;
    }
    
    //删除
    int Delete_sql(MYSQL *p_sock)
    {
        char buffer[1024] = {0};
        //sql语句
        memset(buffer,0x00,1024);
        snprintf(buffer,1023,"%s","delete from Department where Department_id = 'D07'");
        //执行sql语句
        if(mysql_query(p_sock,buffer) != 0)
        {
            perror("mysql_query");
            return -1;
        }
        return 0;
    }
    
    
    int main()
    {
        //按照文档中的步骤,首先进行对sql环境的初始化
    
        //1.初始化sql环境
        //定义MYSQL变量
        MYSQL mysql,*p_mysql,*p_sock;
        //初始化mysql句柄
        p_mysql = mysql_init(&mysql);
        if(p_mysql == NULL)
        {
            printf("初始化错误!\n");
            return -1;
        }
        //初始化MySQL库
        int ret = mysql_library_init(0,NULL,NULL);
        if(ret ==0)
        {
            printf("初始化数据库成功!\n");
        }
        else
        {
            printf("初始化数据库失败!\n");
            return -1;
        }
        if(p_mysql != NULL && ret == 0)
        {
            printf("初始化sql环境成功!\n");
        }
    
        //2.连接数据库
        p_sock = mysql_real_connect(p_mysql,"127.0.0.1","root","(NavyBlue123)",NULL,0,NULL,0);
        if(p_sock == NULL)
        {
            //输出错误原因
            printf("连接错误:%s\n",mysql_error(p_mysql));
            return -1;
        }
        //选择数据库
        int r = mysql_swlect_db(p_sock,"StaffDB");
        if(r != 0)
        {
            printf("选择数据库出错:%s\n",mysql_error(p_mysql));
            return -1;
        }
        //设置编码格式,注意,此处一定要设置编码格式,不然最后的查询结果中的中文会显示乱码
        mysql_query(&mysql,"SET NAMES utf8");
        if(p_sock != NULL && r == 0)
        {
            printf("数据库连接成功!\n");
        }
    
        //3.执行sql语句,此部分我们另写函数实现
        //查询部分我们选择查询3张表的整体信息
        Select_sql(p_sock);
        //插入部分我们选择给Staff表中插入一条新的员工信息
        Insert_sql(p_sock);
        //修改,即更新
        Update_sql(p_sock);
        //删除部分我们选择删除新插入到Staff表中的那条员工信息
        Delete_sql(p_sock);
    
        //4.获取查询结果,此部分会在执行sql语句的函数里一并处理
    
        //5.关闭数据库
        mysql_close(&mysql);
    
        //6.释放sql环境,终止使用MySQL库
        mysql_library_end();
    
        return 0;
    }
    

             由于本鸟的Mysql在安装的时候丢失了重要的文件,所以此文件无法运行,还希望大家在闲余时间能够亲自跑一下代码,熟悉一下连接过程为好。

    展开全文
  • Kali Linux数据库简单使用 步骤: 1.查看mysql数据库状态 systemctl status mysql 2.启动数据库服务 service mysql start 3.进入数据库 mysql –u root –p 4.查看数据库类型 show databases 5.创建数据库 create ...

    Kali Linux中数据库简单使用
    步骤:
    1.查看mysql数据库状态 systemctl status mysql
    2.启动数据库服务 service mysql start
    3.进入数据库 mysql –u root –p
    4.查看数据库类型 show databases
    5.创建数据库 create database 数据库名 default charset utf8,使用其中一个数据库 use+数据库名,默认数据库是没有密码的,故需创建密码
    在这里插入图片描述
    显示成功,但并未修改成功,因为Maria数据库默认是跳过密码验证的,我们需要添加下面这条命令
    在这里插入图片描述
    然后刷新用户权限
    在这里插入图片描述在这里插入图片描述

    下次登录不输入密码会无法进入
    在这里插入图片描述
    6.创建表 create table 表名
    7.查看表结构 desc 表名
    8.插入数据 insert into(字段(Field)1,字段2,…)values(对应字段类型插入不同值,注意逗号隔开)
    9.常规操作
    增删改查
    增:
    多行数据插入
    Insert into 表名 (字段1,2,3,4)values(对应的值);
    Alert table 表名 add 新增字段 类型/after 原有字段;
    同时添加属性
    在这里插入图片描述在这里插入图片描述
    删:
    Delete from 表名字 where 字段=?
    在这里插入图片描述
    在这里插入图片描述
    改:
    Update 表名set 字段=?where id=?
    在这里插入图片描述
    在这里插入图片描述
    查:
    整体查询:
    Select * from 表名
    Select 字段名 from 表名 where 字段名=?
    在这里插入图片描述

    展开全文
  • 备份数据库,这是必须会用到的,今天上午花了几个小时整理了一下,结果不错。下面详细的走一遍 一丶选择一个比较大位置来保存备份文件(创建文件就行) 使用mkdir来创建文件夹,这个简单。 二丶检查有没安装crond,...
  • 1、查看mysql版本 方法一:status; 方法二:select version(); 2、Mysql启动、停止、重启常用命令 a、启动方式 1、使用 service 启动: [root@localhost /]# service mysqld start (5.0版本是mysqld) ...
  • Linux下常用数据库介绍

    千次阅读 2020-08-23 16:59:10
    一、数据库介绍 ... 关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据 库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、...

    一、数据库介绍

    1.什么是数据库;

           数据库就是一个存放计算机数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组
    织形式或数据之间的联系)来对数据进行组织和存储的,可以通过数据库提供的多种方法来管理其
    中的数据。

    2.数据库的种类

    关系型数据库非关系型数据库

    3.关系型数据库

           关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据 库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过这些关联的表格分类、合并、连接或选取等运算来实现数据的管理。 关系型数据可以很好地存储一些关系模型的数据,比如一个老师对应多个学生的数据( 一对 ),一本书对应多个作者( 一对多 ),一本书对应一个出版日期( 一对一 ) 。
     

    常见关系型数据库;

    1 Oracle 数据库
     

             Oracle 前身叫 SDL,由 Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979年,Oracle 公司引入了第一个商用 SQL关系数据库管理系统。 Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前 Oracle 关系数据库产品的市场占有率数一数二。

            Oracle (甲骨文)公司是目前全球最大的数据库软件公司,也是近年业务增长极为迅速的软件提供与服务商。

    主要应用范围:传统大企业,大公司,政府,金融,证券等等。

     

    2MySQL 数据库

               MySQL 数据库是一个中小型关系型数据库管理系统,软件开发者为瑞典 MySQL AB 公司。在 2008 1 16 号被 Sun 公司收购,后 Sun 公司又被 Oracle 公司收购。目前 MySQL 被广泛地应用 Internet 上的大中小型网站中由于其体积小、速度快、总体拥有成本低,尤其是开放源码这 一特点,许多大中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库,甚至国 内知名的淘宝网也选择弃用 Oracle 而更换为更开放的 MySQL
              MySQL 数据库主要应用范围:互联网领域,大中小型网站,游戏公司,电商平台等等。
     
    3、MariaDB 数据库

                MariaDB 数据库管理系统是 MySQL 数据库的一个分支,主要由开源社区维护。开发这个 MariaDB 数据库分支的可能原因之一是:甲骨文公司收购了 MySQL 后,有将 MySQL 闭源的潜在 风险,因此 MySQL 开源社区采用分支的方式来避开这个风险。 开发 MariaDB 数据库的目的是完全兼容 MySQL 数据库,包括 API 和命令行,使之能轻松的成为 MySQL 的代替品。在存储引擎方面,使用 XtraDB (英语: XtraDB )来代替 MySQL InnoDB
               MariaDB MySQL 的创始人 Michael Widenius (英语: Michael Widenius )主导开发,他早前 曾以 10 亿美元的价格,将自己创建的公司 MySQL AB 卖给了 SUN ,此后,随着 SUN 被甲骨文收 购, MySQL 的所有权也落入 Oracle 的手中, MariaDB 数据库的名称来自 MySQL 的创始人 Michael Widenius 的女儿 Maria 的名字。
     
    4 SQL Server 数据库

              Microsoft SQL Server 是微软公司开发的大型关系型数据库系统。 1987 年,微软和 IBM 合作开发完 OS/2 IBM 在其销售的 OS/2 ExtendedEdition 系统中绑定了 OS/2 DatabaseManager ,而微 软产品线中尚缺少数据库产品。为此,微软将目光投向 Sybase ,同 Sybase 签订了合作协议,使 Sybase 的技术开发基于 OS/2 平台的关系型数据库。 1989 年,微软发布了 SQLServer1.0 版。 SQL Server 的功能比较全面,效率高,可以作为中型企业或单位的数据库平台。 SQL Server 可以 Windows 操作系统紧密集成,不论是应用程序开发速度还是系统事务处理运 行速度,都能得到较大的 提升。 SQL Server 的缺点是只能在 Windows 系统下运行。
              主要应用范围:部分企业电商(央视购物),使用 windows 服务器平台的企业。

     

    4、非关系型数据库

               非关系型数据库也被称为 NoSQL 数据库, NoSQL 的本意是 “Not Only SQL” ,指的是非关系型数据库,而不是 “NO SQL” 的意思, NoSQL 的产生并不是要彻底否定关系型数据库,而是作为数 据库的一个有效补充。 NoSQL 数据库在特定的场景下可以发挥难以想象的高效率和高性能。特别 是对于规模日益扩大的海量数据,超大规模和高并发的微博、微信、 SNS 类型的纯动态网站已经 显得力不从心,暴露了很多难以克服的问题,例如:传统的关系型数据库 IO 瓶颈、性能瓶颈都难 以有效突破,于是开始出现了大批针对特定场景,以高性能和使用便利为目的功能特异化的数据库 产品。 NoSQL (非关系型)类的数据库就是这样的情景中诞生并得到了非常迅速的发展。
                NoSQL 是非关系型数据库的广义定义。它打破了长久以来关系型数据库与 ACID 理论大一统的局 面。 NoSQL 数据存储不需要固定的表结构,通常也不存在连续操作。
     

    常用非关系型数据库管理系统

    1、MemcachedKey-Value

             Memcached 是一个开源的、高性能的、具有分布式内存对象的缓存系统。通过它可以减轻数据库负载,加速动态的 Web 应用,最初版本由 LiveJoumal Brad Fitzpatrick 2003 年开发完成。 目前全球有非常多的用户都在使用它来构建自己的大负载网站或提高自己的高访问网站的响应速 度。注意: Memcache 是这个项目的名称,而 Memcached 是服务器端的主程序文件名。
             缓存一般用来保存一些经常被存取的对象或数据(例如,浏览器会把经常访问的网页缓存起来一 样),通过缓存来存取对象或数据要比在磁盘上存取快很多,前者是内存,后 者是磁盘。 Memcached 是一种纯内存缓存系统,把经常存取的对象或数据缓存在 Memcached 的内存中, 这些被缓存的数据被程序通过 API 的方式被存取, Memcached 里面的数据就像一张巨大的 HASH
    表,数据以 Key-Value 对的方式存在。 Memcached 通过缓存经常被存取的对象或数据,从而减轻频繁读取数据库的压力,提高网站的响应速度 . 官方: http://Memcached.org/

    由于Memcached 为纯内存缓存软件,一旦重启所有数据都会丢失,因此,新浪网基于Memcached 开发了一个开源项目 MemcacheDB。通过为 Memcached 增加 Berkeley DB 的持久化存储机制和异步主辅复制机制,使 Memcached 具备了事务恢复能力、持久化数据存储能力和分布式复制能力,但是最近几年逐渐被其他的持久化产品替代例如Redis

    2RedisKey-Value

    Redis 是一个Key-Value 型存储系统。但Redis支持的存储value 类型相对更多,包括 string(字符串)、list(链表)、set(集合)和 zset(有序集合)等。这些数据类型都支持 push/popadd/remove 及取交集、并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis 支持各种不同方式的排序。与 Memcached 一样,为了保证效率,Redis 的数据都是缓存在内存中。区别是 Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 Master-Slave(主从)同步。

    Redis 是一个高性能的 Key-Value 数据库。Redis 的出现,很大程度补偿了 Memcached 这类 Key-Value 存储的不足,在部分场合可以对关系数据库有很好的补充作用。它提供了 PythonRubyErlangPHP 客户端,使用很方便。

    官方:http://www.Redis.io/documentation

           Redis 特点:
     

    3 MongoDB Document-Web
     
     

    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,类似 Json Bjson 格式,因此可以存储比较复 杂的数据类型。MongoDB 最大的特点是他支持查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、易使用,存储数据非常方便。

    MongoDB 服务端可运行在 LinuxWindows OS X 平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台。

    McmgoDB 把数据存储在文件中(默认路径为:/data/db)。

     
    展开全文
  • 我想,如果没有银行等等这样的大型企业用户,那么MySQL一定是当之无愧的数据库市场使用率第一名,相对来说,第二名自然有第二名的道理,简单,易用,稳定,免费等等特点是MySQL普及的原因,但相对的,稳定,安全与...
  • 为使用阿里云主机,没有装ftp,也没有装phpmyadmin,所以一切都得靠命令行。转移网站的重要一步就是转移数据库,这里简单介绍一下如何在这种情况下导入sql文件
  • Linux数据库简要总结

    千次阅读 2018-04-22 14:37:56
    Linux数据库简要总结LinuxLinux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多...
  • 本文给大家简单介绍下c实现linux下的数据库备份的方法和具体的源码,十分的实用,有需要的小伙伴可以参考下。
  • 数据库基本介绍2.MariaDB3.数据库安全初始化4.数据库的基本管理 1.数据库基本介绍 数据库(database)是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的...
  • linux系统数据库服务器的性能调优方法论

    千次阅读 多人点赞 2020-10-29 09:53:19
    对于 DSS中长期运行的查询操作而言,在实现了复杂的查询优化器以及复杂的内存(分类/散列区域)参数控制的数据库中, 更大的块尺寸会提高数据库扫描速度, 例如 8KB(如果数据库支持, 或者可选更大尺寸)。在工作负荷...
  • linux环境下建数据库

    2020-09-28 14:25:02
    一、建实例 1、首先在存放实例的路径下,新建一个文件夹,以实例名命名,并右键授权777 2、在服务器桌面右键打开终端 ...第一步,选择创建数据库,下一步 第二步,输入数据库实例名和SID,下一步 ...
  • Linux虚拟机和oracle数据库安装步骤 一:首先准备材料 vmWare10, oracle11g安装包,xmanager4(ftp)工具,还有一些安装过程中缺少的rpm文件,我用的是iso5,想简单可以用iso6
  • Linux下Oracle数据库安装详解

    千次阅读 2020-01-19 11:54:09
    弹出安装界面后安装过程比较简单,就不细说了,步骤截图如下。 安装选项,三个选项分别为:①创建并配置一个新数据库。②只安装数据库软件,适用于已有Oracle数据库数据用于数据迁移的。③升级已有数据库。这里...
  • Linux下达梦数据库安装使用全局说明达梦数据库简介功能快捷键1合理的创建标题,有助于目录的生成1如何改变文本的样式1插入链接与图片1如何插入一段漂亮的代码片1生成一个适合你的列表1创建一个表格1设定内容居中、...
  • 一、数据库的查询 ## 1.查询命令: SHOW DATABASES; ####显示数据库中所有的库 USE mysql; ####进入mysql库 SHOW TABLES; ####显示...
  • linux数据库的部署

    千次阅读 2018-12-04 22:53:10
    Linux中比较常用的数据库为mariadb
  • linux数据库copy方法

    2019-03-20 15:36:00
    相信大多数程序员都会遇到数据库copy的问题,下面就总结几种常见的方法,针对有mysql基础的同学参考 方法一:利用sqlyog的copy database的功能,如图 这种最简单,速度比较慢; 方法二:使用shell脚本 #/bin...
  • linux中查询数据库

    千次阅读 2019-02-22 17:48:54
    具体情况简单说明: 1、显示数据库 show databases; 2、选择数据库 use 数据库名; 3、显示数据库中的表 show tables; 4、显示数据表的结构 describe 表名; 5、显示表中记录 SELECT * FROM 表名; 6、建库 ...
  • linux中备份mysql数据库

    万次阅读 2018-04-17 13:36:01
    linux中备份mysql数据库,命令是:[root]# mysqldump -u 用户名 -p 密码 --all-databases &gt; /home/mysql/bak.sql如果报错就添加如下:mysqldump -h localhost -u root -p psword root@172.16.123.88 --all...
  • 本文是简单整理一下这几天把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql下面具体操作。 首先我们需要关闭MySQL,命令如下:  #service mysqld stop 网上有很多人都是用的mysqladmin -u root -p...
  • 连接数据库 切换数据库用户 su - postgres 登录数据库 psql 列出所有用户: \du 数据库操作: 查看数据库 \l 连接其他数据库\c [database_name] 查看数据库表 \dt ...
  • linux怎样创建一个简单的mysql数据库

    万次阅读 2018-09-10 17:02:35
    看到一份比较好的文档,保存下来,以便日后查看. ...创建数据库 注:已经安装好mysql。 windows下运行cmd进入命令窗口, 本人用的是win7系统,先输入F:进入F盘,然后输入“cd F:\mysql\mysql-5.7.18-winx64\bin”...
  • 在本文中,我对许多流行的Linux数据可视化工具进行了调查,并对其中的其他功能进行了深入分析。 例如,该工具是否提供用于数值计算的语言? 该工具是交互式的还是仅在批处理模式下运行? 可以使用该工具进行图像或...
  • 1)yum -y install mysql-server(简单) yum命令自动从网上寻找mysql服务资源,下载至本地并完成安装 2)也可以自己在网上下载mysql服务,通过xftp传输至Linux系统,自己安装(一般安装在usr或opt目录下) 2.启动...
  • 简单实用的晚间自动备份数据库小案例 步骤一、创建备份脚本,暂且命名为orabak.sh #路径名,指定备份的路径 FILEPATH = /oracle/orabak #根据指定日期格式,定义备份数据库文件名 FILENAME = `date + %Y%m%d_%H%M #...
  • 1,使用yum安装mysql数据库: 一开始的yum源中没有mysql软件的软件源,这个时候就需要我们自己来设置: wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm -----要先通过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 349,662
精华内容 139,864
关键字:

linux简单数据库

linux 订阅