httpd 安装 、sqlite3安装 学习笔记

httpd:------------------------------------------------------------

sudo apt-get install httpd 或是找httpd 安装包

找到后,做如下操作,一般安装包一类的操作都差不多这样做;

./configure -prefix=/var/httpd

make
sudo make install


sudo vim /var/httpd/conf/httpd.conf

listen 8080
user akaedu
group akaedu
servername 127.0.0.1:8080


/bin下

sudo ./httpd -k start

http;//127.0.0.1:8080

/var/httpd/httpdoc/下就可以写我们自己的服务文件了;


sqllite3:------------------------------------------------------------

sudo apt-get install libsqlite3-dev
sudo apt-get install sqlite3
sudo apt-get install rlwrap  // 是一个可以支持上下键的软件

rlwrap sqlite3 test.db

.bashrc  //改个好用的别名
alias sqlite3='rlwrap sqlite3' 
export PS1='-->'

sqlite3 m.db  //在打开一个文件的时候如果当前目录没有后面的这个m.db的话,会自己建一个m.db 的database;

 

create table student(id integer,name text,age integer,score integer); //建表

.table //看表

.schema student   看表里面当前有多少字段;

记录内容的操作:
insert into student(id,name,age,score) values(1,'xiaoMing',21,100);

not null,primary key,unique, 

select * from student;

delete from student;
.import data.txt  student;  自己写字txt文件可以把它导入进来。注意内容要以|分格

update student set age=27 where id=2;

delete from student where id =1;

name like 'X%'  //支持like 等操作
age between 22 and 25;

distinct name //过滤相同的

order by id desc/asc
score+socre2
 select * from sapplay union all select * from custom;  两表连查

2.
create table employee(id integer primary key,name text,depart text,salary integer);
select sum(salary) from employee;

select depart, sum(salary) from employee group by depart;

select depart, sum(salary) from employee group by depart having sum(salary)>3000;

select depart, sum(salary) from employee where id<5 group by depart having sum(salary) >5000;



表的修改:
alter table student add score2 integer;

alter table student modify score2 text;(不一定支持)

drop table student;

create table employee_bak as select * from employee;//bak

上前的内容基本上和我们一般用的SQL差不多,看看那个这个也就会了,不过有的时候我们这个小SQL会不支持;

下面是用sqlite3 在C语言下的操作:

#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
 
int rscallback(void *p, int argc, char **argv, char **argvv)
{
    int i;
    *(int *)p = 0;
    for(i=0; i<argc; i++) {
        printf("%s=%s ", argvv[i], argv[i]?argv[i]:"NULL");
    }
    putchar('\n');
    return 0;
}
 
int main(void)
{
    sqlite3 *db;
    char *err = 0;
    int ret = 0;
    int empty = 1;

    ret = sqlite3_open("./test.db", &db);
    if(ret != SQLITE_OK) {
                fputs(sqlite3_errmsg(db), stderr);
                fputs("\n", stderr);
                exit(1);
    }
    /*ret = sqlite3_exec(db, "insert into employee values(12, \"www\", \"male\", 31);", rscallback, ∅, &err);
    if(ret != SQLITE_OK) {
                fputs(err, stderr);
                fputs("\n", stderr);
                sqlite3_close(db);
                exit(1);
           }*/
/*           if(empty) {
                fputs("table employee is empty\n", stderr);
                exit(1);
           }*/
    ret = sqlite3_exec(db, "select * from employee;", rscallback, ∅, &err);
    if(ret != SQLITE_OK) {
                fputs(err, stderr);
                fputs("\n", stderr);
                sqlite3_close(db);
                exit(1);
           }
           if(empty) {
                fputs("table employee is empty\n", stderr);
                exit(1);
           }
    sqlite3_close(db);
    return 0;
}

动态实现insert update

#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
 
static int sort_callback(void *p, int argc, char **argv, char **argvv)
{
    int i;
    int time = *(int *) p;     
    time++;
    *(int *) p = time;
          
    printf("[%d]:  ", time);
    for(i = 0; i < argc; i++)
    printf("%8s ", argv[i]? argv[i]: "NULL");
    printf("\n");     
    return 0;    
}

int do_insert(sqlite3 *db)
{
    int ret = 0;    
    char name[10];
    char gender[10];
    char score_a[10];
    char score_b[10];
    char score_c[10];
    char *sql = NULL;
    
    printf("Input Name:\n");
    scanf("%s",name);
    printf("Input Gender:\n");
    scanf("%s",gender);    
    printf("Input Score A:\n");
    scanf("%s",score_a);    
    printf("Input Score B:\n");
    scanf("%s",score_b);    
    printf("Input Score C:\n");
    scanf("%s",score_c);    

    printf("Name:%s,Gender:%s,Score A:%s,Score B:%s,Score C:%s\n",
     name,gender,score_a,score_b,score_c);

    sql = sqlite3_mprintf("insert into student values(%Q, %Q, %s, %s, %s)", 
                          name,gender,score_a,score_b,score_c);    

    ret = sqlite3_exec(db, sql, NULL, NULL, NULL);
    sqlite3_free(sql);    
    if(ret != SQLITE_OK) {
        fputs("insert error\n",stderr);
    }    
    return ret;
}    

int do_delete(sqlite3 *db)
{
    int ret = 0;    
    char name[10];
    char *sql = NULL;

    printf("Input Name:\n");
    scanf("%s",name);

    sql = sqlite3_mprintf("delete from student where name=%Q", name);
    ret = sqlite3_exec(db, sql, NULL,NULL ,NULL);
    sqlite3_free(sql);
    if(ret != SQLITE_OK) {
        fputs("delete error\n",stderr);
    }       
    
    return ret;
}

int do_update(sqlite3 *db)
{
    int ret = 0;
    char name[10];
    char gender[10];
    char score_a[10];
    char score_b[10];
    char score_c[10];
    char *sql = NULL;
    
    printf("Input Name:\n");
    scanf("%s",name);
    printf("Input Gender:\n");
    scanf("%s",gender);    
    printf("Input Score A:\n");
    scanf("%s",score_a);    
    printf("Input Score B:\n");
    scanf("%s",score_b);    
    printf("Input Score C:\n");
    scanf("%s",score_c);    

    printf("Name:%s,Gender:%s,Score A:%s,Score B:%s,Score C:%s\n",
     name,gender,score_a,score_b,score_c);

    sql = sqlite3_mprintf("update student set "
         "gender=%Q, scoreA=%s, scoreB=%s, "
         "scoreC=%s where name=%Q", 
                            gender,score_a,score_b,score_c,name);

    ret = sqlite3_exec(db, sql, NULL, NULL, NULL);
    sqlite3_free(sql);    
    if(ret != SQLITE_OK) {
        fputs("update error\n",stderr);
    }   
    return ret;
}

int do_sort(sqlite3 *db)
{
    int ret = 0;
    int time = 0;
    
    ret  = sqlite3_exec(db, 
           "select name, gender, scoreA, "
           "scoreB, scoreC, scoreA+scoreB+scoreC "
           "from student order by scoreA+scoreB+scoreC desc",
           sort_callback, &time, NULL);          
    if(ret != SQLITE_OK) {
        fputs("sort error\n",stderr);
    }    
    return ret;
}

void displaymenu(void)
{
    printf("1. Insert Record\n");
    printf("2. Delete Record\n");
    printf("3. Update Record\n");
    printf("4. Sort\n");
    printf("q. quit\n");    
    printf("Please Select [1-4]:\n");
    return;    
}    

int main(void)
{
    sqlite3 *db;
    char *err = 0;
    int ret = 0;
    int empty = 1;
    int options = 0;
    int donext = 1;

    ret = sqlite3_open("./test.db", &db);
     
    if(ret != SQLITE_OK) {
        fputs(sqlite3_errmsg(db), stderr);
        fputs("\n", stderr);
        exit(1);
    }
    
    displaymenu();
    
    while(donext)
    {   
        options = getchar();
        switch(options){
            case '1':
            {
                do_insert(db);
                displaymenu();
            }
                break;        
            case '2':
            {
                do_delete(db);
                displaymenu();
            }
                break;        
            case '3':
            {
                do_update(db);
                displaymenu();
            }
                break;        
            case '4':
            {
                do_sort(db);
                displaymenu();
            }
                break;        
            case 'q':
            {
                donext = 0;
            }
                break;        
            default:
            {
            }
            break;        
        } 
    }
    
    sqlite3_close(db);
    return 0;
}

由于用到SQLITE库,所以编译的时候要加-lsqlite3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果 yum install httpd 安装不了,可以尝试以下解决方案: 1. 检查网络连接是否正常 2. 更新 yum 资源库 3. 清除 yum 缓存并重试 4. 尝试使用其他 yum 源安装 5. 检查系统是否满足安装 httpd 的要求 如果仍然无法解决问题,请提供更多的错误信息以获得更精确的帮助。 ### 回答2: 在安装 httpd 的过程中,会遇到各种各样的问题,导致安装失败或者出现无法预期的错误。下面是一些常见的原因和解决方案。 1. 依赖关系问题 yum 安装程序的前提是需要满足依赖关系,如果依赖关系不满足会导致安装失败。可以通过以下命令查看 httpd 的依赖关系: ``` yum deplist httpd ``` 如果依赖关系不满足,可以通过以下命令安装所需的依赖包: ``` yum install <name> ``` 其中 `<name>` 是缺失的依赖包的名称。 2. 源地址配置错误 由于网络原因或配置错误,yum 可能会无法获取软件包。这个问题可以通过修改 yum 源地址来解决。可以通过编辑 /etc/yum.repos.d 目录下的配置文件来修改源地址。 3. 安装包已经存在 如果安装包已经存在,再次执行 yum install httpd 命令会出现无法安装的错误。可以通过以下命令来查看 httpd 是否已经安装: ``` rpm -qa | grep httpd ``` 如果已经安装,可以通过以下命令卸载: ``` yum remove httpd ``` 4. 硬盘空间不足 如果硬盘空间不足,yum install httpd 命令执行时会出现无法安装的错误。可以通过以下命令来查看可用的硬盘空间: ``` df -h ``` 如果硬盘空间不足,可以先清理一些不必要的文件或者增加硬盘空间。 综上所述,yum install httpd 安装不了可能是由依赖关系问题、源地址配置错误、安装包已经存在、硬盘空间不足等原因导致。可以根据错误提示和以上的解决方案来解决问题。 ### 回答3: yum install httpd是在Linux系统中安装Apache Web服务器的命令,但有时候可能会出现安装不了的情况,下面是我能想到的一些可能原因及解决方法。 1. 网络问题 当我们在进行yum命令操作时,首先会从网络上下载软件包和相关依赖,如果网络出现问题,yum就无法下载软件包,也就无法进行安装。解决方法:先检查网络是否正常,可以尝试ping一下Google网站或其他网站,如果ping不通,则需要检查网络设置或网络连接。 2. 软件源问题 yum命令从软件源中下载软件包,在安装httpd时可能会出现软件源配置不正确的情况。解决方法:检查软件源配置文件,确认是否正确配置了适当的软件源。 3. 系统更新问题 yum命令下载的软件包大多都是最新版本,如果我们的系统中的软件包版本太老,会导致yum无法安装。解决方法:先更新系统,使系统中的软件包版本处于最新状态,尝试下载安装httpd。 4. 端口冲突问题 当httpd安装不了时,可能是因为80端口被占用。解决方法:可以使用以下命令查看80端口的占用情况,kill掉占用80端口的进程后再进行httpd安装。 $ netstat -nlp | grep :80 总之,yum install httpd安装不了可能有很多原因,我们需要逐一排查。如果以上方法无法解决问题,可以尝试其他安装方法,如编译安装或使用其他软件包管理工具。同时,在安装软件之前,我们需要了解软件的相关信息和安装指南,这样可以帮助我们更好地排查问题和解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值