当前位置:   article > 正文

MySQL 5.7.10 绿色版的精简安装与C语言编程

mysql5.7精简

济南恒软信息技术有限公司(http://www.heng-soft.com)

一、下载

1、进入官网:http://www.mysql.com/

2、点开

3、拉到下面

4、点开

5、点开红字“这里下载服务器”左边的

6、拉到下面

7、点击你需要的,建议点第一个。

8、拉到下面

9、点击开始下载 mysql-5.7.10-win32.zip。

10、点开 4 中红字标示“这里下载编程所需的头文件及链接库”左边的

11、找到并点开

12、拉到页面中间位置

13、以下同 7、8、9,建议点第三个,开始下载 mysql-connector-c-6.1.6-win32.zip。

    注意版本要一致:要么都是 32-bit,要么都是 64-bit

二、精简

1、mysql-5.7.10-win32.zip 中仅保留 bin 和 share 两个子目录,其他子目录及文件全部删除。

2、mysql-5.7.10-win32\bin 目录下仅保留 mysqld.exe、mysqladmin.exe和 mysql.exe 三个文件,其他子目录及文件全部删除。

3、mysql-5.7.10-win32\share 目录下仅保留 charsets 和 english 两个子目录,其他子目录及文件全部删除。

4、mysql-connector-c-6.1.6-win32.zip 中仅保留 include 和 lib 两个子目录,其他子目录及文件全部删除。

5、mysql-connector-c-6.1.6-win32\lib 目录下保留 libmysql.dll 和 libmysql.lib 两个文件,其他子目录及文件全部删除。

精简后的目录结构如下:

mysql-5.7.10-win32

  1. | -- bin
  2. | |-- mysql.exe
  3. | |-- mysqladmin.exe
  4. | |-- mysqld.exe
  5. | -- share
  6. |-- charsets
  7. | |-- *.*
  8. |-- english
  9. |-- *.*

mysql-connector-c-6.1.6-win32

  1. |-- include
  2. | |-- mysql
  3. | | |-- *.*
  4. | |-- *.*
  5. | -- lib
  6. |-- libmysql.dll
  7. |-- libmysql.lib

三、安装

1、解压 mysql-5.7.10-win32.zip,路径中不要出现汉字。

2、以管理员权限启动 cmd,并进入到 mysql\bin 目录。

3、初始化:mysqld --initialize-insecure --user=root

4、安装服务:mysqld install

5、启动服务:net start mysql

6、设置密码:mysqladmin -u root password 密码

7、建议把服务里 MySQL 的启动类型从自动设为手动,把第5步做个批处理文件。需要的时候右键 .bat 文件以管理员身份运行。

四、卸载

1、停止服务:net stop mysql

2、移除服务:mysqld remove

3、删掉 mysql 目录

五、GCC(MinGW64)编程

1、将 mysql-connector-gcc-6.1.6-win32 目录下的 include 和 lib 两个子目录拷贝到 MinGW 的 32 位安装目录下 MinGW\i686-w64-mingw32,同名文件夹合并即可。

2、把 lib 子目录中 libmysql.dll 文件再拷贝一份到 C:\Windows\SysWOW64 目录下。

六、示例

/* 编译:

  • gcc -o TestMySQL TestMySQL.c -lmysql */

#include <string.h> #include <stdio.h> #include "mysql.h"

int main() { char szHost[] = "localhost"; char szUser[] = "root"; char szPasswd[] = "root"; char szDB[] = "study1"; char szTable[] = "T_Pet"; char szQuery[1024]; // SQL语句,单条记录最大8000字节 MYSQL mysql, *pmysql; // 数据库连接的对象及其指针 MYSQL_RES *res; // 结果集 MYSQL_ROW row; // 结果集中的一行数据 unsigned int nFields; // 结果集中的字段数 unsigned int nRows; // 结果集中的行数 unsigned int i, j;

  1. // 初始化MYSQL对象
  2. mysql_init(&mysql);
  3. // 连接服务器
  4. pmysql = mysql_real_connect(&mysql, szHost, szUser, szPasswd, NULL, 0, NULL, 0);
  5. if(pmysql == NULL)
  6. {
  7. printf("Couldn't connect to host. (%s)\n", mysql_error(&mysql));
  8. return 1;
  9. }
  10. // 创建库
  11. sprintf(szQuery, "create database if not exists %s", szDB);
  12. if(mysql_real_query(pmysql, szQuery, strlen(szQuery)) != 0)
  13. {
  14. printf("Create databse failed. (%s)\n", mysql_error(pmysql));
  15. return 1;
  16. }
  17. // 选择库
  18. if(mysql_select_db(pmysql, szDB) != 0)
  19. {
  20. printf("Select databse failed. (%s)\n", mysql_error(pmysql));
  21. return 1;
  22. }
  23. // 创建表
  24. sprintf(szQuery, "create table if not exists %s (ID int primary key not NULL auto_increment, \
  25. Name varchar(20), \
  26. Owner varchar(20), \
  27. Species varchar(20) not NULL, \
  28. Sex char(2) not NULL default 'f', \
  29. Birthday date not NULL, Deathday date) \
  30. engine=MYISAM default charset=UTF8", szTable);
  31. // engine=InnoDB 时每次 auto_increment 会跳加 8,原因不明。
  32. if(mysql_real_query(pmysql, szQuery, strlen(szQuery)) != 0)
  33. {
  34. printf("Create table failed. (%s)\n", mysql_error(pmysql));
  35. return 1;
  36. }
  37. // 插入数据
  38. sprintf(szQuery, "load data LOCAL INFILE 'pet.txt' into table %s fields \
  39. terminated by '\\t' lines terminated by '\\r\\n' \
  40. (Name, Owner, Species, Sex, Birthday, Deathday)", szTable);
  41. if(mysql_real_query(pmysql, szQuery, strlen(szQuery)) != 0)
  42. {
  43. printf("Load data failed. (%s)\n", mysql_error(pmysql));
  44. return 1;
  45. }
  46. // 查询表头
  47. sprintf(szQuery, "select COLUMN_NAME from information_schema.COLUMNS where table_name = '%s' \
  48. and table_schema = '%s'", szTable, szDB);
  49. if(mysql_real_query(pmysql, szQuery, strlen(szQuery)) != 0)
  50. {
  51. printf("Query failed. (%s)\n", mysql_error(pmysql));
  52. return 1;
  53. }
  54. res = mysql_store_result(pmysql);
  55. if(res == NULL)
  56. {
  57. printf("Couldn't get result. (%s)\n", mysql_error(pmysql));
  58. return 1;
  59. }
  60. while((row = mysql_fetch_row(res)) != NULL)
  61. printf("%-20s", row[0]);
  62. printf("\n");
  63. // 查询全表数据
  64. sprintf(szQuery, "select * from %s", szTable);
  65. if(mysql_real_query(pmysql, szQuery, strlen(szQuery)) != 0)
  66. {
  67. printf("Query failed. (%s)\n", mysql_error(pmysql));
  68. return 1;
  69. }
  70. res = mysql_store_result(pmysql);
  71. if (res == NULL)
  72. {
  73. printf("Couldn't get result. (%s)\n", mysql_error(pmysql));
  74. return 1;
  75. }
  76. nRows = mysql_num_rows(res);
  77. nFields = mysql_num_fields(res);
  78. for(i=0; i<nRows; i++)
  79. {
  80. row = mysql_fetch_row(res);
  81. for(j=0; j<nFields; j++)
  82. printf("%-20s", row[j] ? row[j] : "");
  83. printf("\n");
  84. }
  85. // 清理
  86. mysql_free_result(res);
  87. mysql_close(pmysql);
  88. return 0;

} pet.txt 是抄来的(中间分隔符不是空格,是 Tab)

Fluffy Harold cat f 1993-02-04 Claws Gwen cat m 1994-03-17 Buffy Harold dog f 1989-05-13 Fang Benny dog m 1990-08-27 Bowser Diane dog m 1979-08-31 1995-07-29 Chirpy Gwen bird f 1998-09-11 Whistler Gwen bird f 1997-12-09 Slim Benny snake m 1996-04-29 本文仅在 mysql_5.7.10-win32 + mysql-connector-c-6.1.6-win32 和 MinGW_w64-i686-5.3.0-release-posix-dwarf-rt_v4-rev0 下测试通过。

转载于:https://my.oschina.net/glenxu/blog/858377

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/139852
推荐阅读
相关标签
  

闽ICP备14008679号