Ubuntu安装mysql

  1. 安装mysql-server,在Ubuntu 10.04下安装mysql-server-5.1,会自动安装mysql-client_5.1
    sudo apt-get install mysql-server-5.1
  2. CAPIs包含在mysqlclient库文件中与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询,因此需要安装libmysqlclient-dev
    sudo apt-get install libmysqlclient-dev
    假定已安装成功,相关文件如下:
    头文件在/usr/include/mysql目录下;
    库文件在/usr/lib/mysql和/usr/lib目录下
    3.启动和关闭mysql
    启动mysql:sudo start mysql
    关闭mysql:sudo stop mysql
    使用ps aux |grep mysql 查看mysql启动状态
    ps命令用于查看当前系统中运行的进程信息,命令格式:ps [选项]
    常见参数:
    -a 显示系统中所有进程,包括其他用户进程
    -e 显示所有进程信息
    -f 显示进程的所有信息
    -l 显示长格式显示进程的信息
    -r 只显示正在运行的程序
    -u 以用户的格式显示进程信息
    -x 显示所有终端上的进程信息
    最常用的方法是ps aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。例如前面使用的ps aux |grep mysql
    4.链接库时需要库文件,有静态库文件,也有动态库文件,也有名字相同的静态库文件和动态库文件,如何区分:
    .o,.a,.so,.lo,.la后缀文件含义
    .o: 编译的目标文件
    .a: 静态库,其实就是把若干o文件打了个包
    .so: 动态链接库(共享库)
    .lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息
    .la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息
    la只有在用libtool编译应用程序或库时才用,即开发者只指明la文件,至于最终链接a还是so由libtool决定,不使用libtool的小程序用不上la。
    5.连接MySql
    a、连接到本机上的MYSQL:   
    首先打开终端窗口,再键入命令mysql -u root -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入
    到MYSQL中了,MYSQL的提示符是:mysql>   
    b.修改密码,格式:mysqladmin -u用户名 -p旧密码 password 新密码   
    例1:给root加个密码ab12。首先打开终端窗口,然后键入以下命令:mysqladmin -uroot password ab12.(注:因为开始时root没有密码,所以-p旧密码一项就可以省略了)。   
    例2:再将root的密码改为djg345。   mysqladmin -uroot -pab12 password djg345 (注:u与root可以不用加空格,其它也一样)。
    c、退出MYSQL命令: exit
    6.增加新用户(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)   
    格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”   
    例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
    首先用以root用户连入MYSQL,然后键入以下命令:grant select,insert,update,delete on . to test1@“%” Identified by “abc”; 但例1增加的用户是十分危险的,
    你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。   
    例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),
    这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。   
    grant select,insert,update,delete on mydb.* to test2@localhost identified by “abc”;如果你不想test2有密码,可再打一个命令将密码消掉。
    grant select,insert,update,delete on mydb.* to test2@localhost identified by “”;
    6.显示命令:(注:下面来看看MYSQL中有关数据库方面的操作。注意:必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束)。
    a、显示数据库列表:show databases; 刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。   
    b、显示库中的数据表:use mysql; show tables;   
    c、显示数据表的结构:describe 表名;   
    d、建库: create database 库名;   
    e、建表: use 库名; create table 表名 (字段设定列表);   
    f、删库和删表: drop database 库名; drop table 表名;   
    g、将表中记录清空:delete from 表名;   
    h、显示表中的记录:select * from 表名;
    7.编写c代码,文件名:mysql.c
    // gcc mysql.c -o test -I /usr/include/mysql -L /usr/lib -lmysqlclient
#include <stdio.h> 
#include <string.h> 
#include <mysql.h> 

int main() 
{ 
 MYSQL mysql; 
 MYSQL_RES *res; 
 MYSQL_ROW row;  
 char sql[50]; 
 int t; 
 sprintf(sql,"select * from Student"); // 定义执行的SQL语句 这里是test数据库里的Student表 
 mysql_init(&mysql);  //初始化mysql结构 
 if(!mysql_real_connect(&mysql,"localhost","root","123456","test",3306,NULL,0)) 
  printf("\n数据库连接发生错误: %s\n",mysql_error(&mysql)); 
 else 
  printf("\n数据库连接成功!\n"); 
 t = mysql_real_query(& mysql, sql, (unsigned int)strlen(sql));   //在服务器上执行定义的SQL语句 
 if(t) 
  printf("查询语句错误: %s\n",mysql_error(&mysql)); 
 else 
 { 
  res = mysql_store_result(&mysql); 
  while(row = mysql_fetch_row(res)) 
  { 
   for(t = 0; t < mysql_num_fields(res); t++) 
    printf("%s",row[t]); 
   printf("\n"); 
  } 
 } 

 printf("释放结果集的空间...\n"); 
 mysql_free_result(res); 
 mysql_close(&mysql); //释放数据库 
 printf("sql errror! %s\n",mysql_error(&mysql));   //如果发生错误打印错误代码 
 return 0; 
} 

编译 :gcc -c mysql.c -I /usr/include/mysql/ 这里的-I 是指定头文件目录 -c 是编译成目标代码
连接 :gcc mysql.o -o test -L /usr/lib/ -lmysqlclient 这里的-L是指定库文件路径 这个参数-lmysqlclient是因为 C API代码包含在mysqlclient库中,正因为有了它才允许C程序访问数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值