1. 程式人生 > >CentOS 6.8 安裝MySql+GCC 編譯

CentOS 6.8 安裝MySql+GCC 編譯

安裝Mysql

1 . 檢視是否安裝Mysql

# rpm -qa | grep mysql 

2 . 檢視可用版本

# yum list | grep mysql

3 . 安裝伺服器、客戶端、開發庫

# yum install -y mysql-server mysql mysql-deve

4 . 檢視安裝的版本

# rpm -qi mysql-server

配置Mysql

  1. 首次啟動
# service mysqld start
下面有很多提示
  1. 設定資料庫root使用者密碼
# mysqladmin -u root password '我是密碼'
  1. 登入資料庫
# mysql -u root -p 
輸入剛剛設定的密碼
  1. 設定Mysql服務開機啟動
# chkconfig mysqld on
通過以下命令檢視是否設定
# chkconfig --list | grep mysql
mysqld   0:off   1:off   2:on    3:on    4:on    5:on    6:off

檢視修改Mysql標頭檔案和庫檔案

1 . 查詢標頭檔案

sudo find / -name 'mysql'
查到mysql資料夾在 /usr/include

2 . 檢視連結庫檔案

sudo find / -name '*mysqlclient*'
結果為: /usr/lib64/mysql/libmysqlclient_r.so.16 /usr/lib64/mysql/libmysqlclient.so /usr/lib64/mysql/libmysqlclient_r.so /usr/lib64/mysql/libmysqlclient.so.16.0.0 /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib64/mysql/libmysqlclient_r.so.16.0.0 而gcc在尋找庫檔案,預設是沒有這個路徑的所以把 libmysqlclient.so libmysqlclient.so.16.0.0 libmysqlclient.so.16
這三個檔案複製到 /usr/lib/ 下

3 . 測試

//本程式在
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql/mysql.h>
#define MAX_COLUMN_LEN  32
int main(int argc , char *argv[])
{
  MYSQL my_connection;
  MYSQL_RES *result;
  MYSQL_ROW sql_row;
  MYSQL_FIELD *fd;
  char column[MAX_COLUMN_LEN][MAX_COLUMN_LEN];
  int res;
  mysql_init(&my_connection);
  if(mysql_real_connect(&my_connection,"127.0.0.1","root","root","test",3306,NULL,0))
  {
    perror("connect");
    res=mysql_query(&my_connection,"select * from c_test");//查詢
    if(!res)
    {
      result=mysql_store_result(&my_connection);//儲存查詢到的資料到result
      if(result)
      {
        int i,j;
        printf("the result number is %lu\n ",(unsigned long)mysql_num_rows(result));
        for(i=0;fd=mysql_fetch_field(result);i++)//獲取列名
        {
          bzero(column[i],sizeof(column[i]));
          strcpy(column[i],fd->name);
        }
        j=mysql_num_fields(result);
        for(i=0;i<j;i++)
        {
          printf("%s\t",column[i]);
        }
        printf("\n");
        while(sql_row=mysql_fetch_row(result))//獲取具體的資料
        {
          for(i=0;i<j;i++)
          {
            printf("%s\t",sql_row[i]);
          }
          printf("\n");
        }

      }
    }
    else
    {
      perror("select");
    }
  }
  else
  {
    perror("connect:error");
  }
  //mysql_free_result(MYSQL_RES *result);//釋放結果資源
  mysql_close(&my_connection);//斷開連線
}

以上程式源連結

編譯命令

gcc mysqltest.c -lmysqlclient

這是資料庫中資料

mysql> select * from c_test;
+------+------+
| id   | name |
+------+------+
|    1 | aaa  |
|    3 | c    |
|    2 | bbb  |
|    4 | d    |
+------+------+
4 rows in set (0.00 sec)

./a.out後結果

connect: Success
the result number is 4
 id name    
1   aaa 
3   c   
2   bbb 
4   d