Chinaunix首页 | 论坛 | 博客
  • 博客访问: 645166
  • 博文数量: 175
  • 博客积分: 2457
  • 博客等级: 大尉
  • 技术积分: 1488
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-13 20:31
文章分类

全部博文(175)

文章存档

2012年(22)

2011年(153)

分类: LINUX

2012-02-21 09:59:57

 在Debian下安装MySQL,步骤:


Debian: /# apt-get install mysql-server

Debian: /# apt-get install mysql-client

Debian: /# apt-get install mysql-admin


再装开发包 
代码: 
sudo apt-get install libmysqlclient15-dev 

debian 自动识别安装了 libmysqlclient-dev  

安装完以后,C代码里添加头文件 
代码: 
#include <mysql.h

编译方法: 
代码: 
gcc $(mysql_config --cflags) xxx.c -o xxx $(mysql_config --libs)  

或 gcc -I/usr/include/mysql connect1.c -L/usr/lib/mysql -lmysqlclient -o connect1

可以用以下c代码测试一下 ,输出现有数据库和表内容。:

  1. /* Simple C program that connects to MySQL Database server*/
  2. #include <mysql.h>
  3. #include <stdio.h>
  4.   
  5. main() {
  6.      MYSQL *conn;
  7.      MYSQL_RES *res;
  8.      MYSQL_ROW row;
  9.   
  10.    char *server = "localhost";
  11.    char *user = "root";
  12.    char *password = ""; /* 此处改成你的密码 */
  13.    char *database = "mysql";
  14.   
  15.      conn = mysql_init(NULL);
  16.   
  17.    /* Connect to database */
  18.    if (!mysql_real_connect(conn, server,
  19.            user, password, database, 0, NULL, 0)) {
  20.        fprintf(stderr, "%s\n", mysql_error(conn));
  21.        exit(1);
  22.     }
  23.   
  24.    /* send SQL query */
  25.    if (mysql_query(conn, "show tables")) {
  26.        fprintf(stderr, "%s\n", mysql_error(conn));
  27.        exit(1);
  28.     }
  29.   
  30.      res = mysql_use_result(conn);
  31.   
  32.    /* output table name */
  33.     printf("MySQL Tables in mysql database:\n");
  34.    while ((row = mysql_fetch_row(res)) != NULL)
  35.        printf("%s \n", row[0]);
  36.   
  37.    /* close connection */
  38.      mysql_free_result(res);
  39.      mysql_close(conn);
  40. }

装好之后要缺省root是没有密码的,可以更改.

Debian: /# mysqladmin -u root password $(yourpass) 

在/etc/mysql/my.conf里面可以修改一些属性。 

原来有这么一行:bind-address = 127.0.0.1

意思是限定只有本机才能访问,愿意是为了保证数据安全。现在想要使得远程的机器能够访问MySQL数据库服务,就可以通过改bind-address来实现, 两种方式:

1. bind-address = 0.0.0.0
2. 直接把bind-address这一行注释掉

  这样做完之后,执行以下命令:

/etc/init.d/mysql stop
/etc/init.d/mysql start

  也有的说/etc/init/d/mysql reload, 但是有时候好像会出奇怪的问题,用上面两步比较好。Ossim官方网站上说改成 bind-address = *, 我试了,行不通,浪费我好多时间。

这样几步做完之后,还赋予远程机器访问权限:

mysql > GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'root_password' WITH GRANT OPTION;

  上面这条命令的意思是允许任何IP地址(%是通配符)的电脑用root帐户和密码(root_password)来访问这个MySQL Server。 

这下就好了。

阅读(1882) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~