ubuntu10.04 + mysql安装

来源:互联网 发布:互联网软件类型 编辑:程序博客网 时间:2024/05/21 06:47
1、安装mysql-server,在Ubuntu10.04下安装mysql-server-5.1,会自动安装mysql-client_5.1

    sudo apt-get install mysql-server-5.1

2、C APIs包含在mysqlclient库文件中与MySQL的源代码一块发行,用于连接到数据库和执行数据库查询,因此需要安装libmysqlclient-dev
    sudo apt-get install libmysqlclient-dev
    假定已安装成功,相关文件如下:
    头文件在/usr/include/mysql目录下;
    库文件在/usr/lib/mysql和/usr/lib目录下

3、启动mysql:sudo start mysql
    关闭mysql:sudo stop mysql
    使用ps aux |grep mysql 查看mysql启动状态

4、修改密码,格式:mysqladmin -u用户名 -p旧密码 password 新密码

  登录mysql -u root -p

5、增加用户名

格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码" 

grant select,insert,update,delete on mydb.* to test2@localhost identified by “abc”;

6、远程登录:
    a、默认情况下Mysql只允许本地登录,所以需要修改配置文件将地址绑定给注释掉:
    vi /etc/mysql/my.cnf
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    #bind-address           = 127.0.0.1  <---注释掉这一行就可以远程登录了 
   b、允许远程登录后,还应设置远程登录权限:
    mysql>grant all privileges on *.* to "root"@"%" identified by "123456" with grant option;
    c、使修改生效:
    mysql> flush privileges;
    d、在另一台机器上远程登录(mysql所在机器地址:192.168.0.30):
    mysql -h192.168.0.30 -uroot -p123456
    e、如果仍不能登录,就把远程mysql关闭,之后重启
    sudo stop mysql
    sudo start mysql  
 7.显示命令:(注:下面来看看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 表名;

8.编写c代码,文件名:mysql.c
//gcc mysql.c -o test -I /usr/include/mysql -L /usr/lib -lmysqlclient
#include 
#include 
#include 

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程序访问数据库。

0 0