易截截图软件、单文件、免安装、纯绿色、仅160KB

Windows下用GCC连接MySQL数据库

    一个网友在坛子上问到的问题,说用MinGW GCC编译运行一个连接MySQL数据库的程序时遇到错误:
undefined reference to `mysql_init@4'
undefined reference to `mysql_real_connect@32'
undefined reference to `mysql_close@4'

    我遂去MySQL官网下了个最新的Windows C Connector,然后按正常思路写了个最简单的连接测试程序,果然出现了同样的错误。
    后来在网上查了下,也看了下Mysql官网上别人的讨论,据称MySQL官方下载的Windows C开发包只能原生态支持CL编译器,而用GCC也并非不可,只是需要做一些额外的工作。先将后来试验成功的步骤笔记于此,主要参考有http://dev.mysql.com/doc/refman/5.0/en/windows-client-compiling.html。
    先下载一下MinGW工具包,下载地址是http://prdownloads.sourceforge.net/mingw/mingw-utils-0.2.tar.gz?download
    解压,将此工具包中的bin目录加入系统环境变量的Path变量。
    在Mysql开发包的lib目录下,即libmysql.lib和libmysql.dll的所在目录,运行
reimp -d libmysql.lib

    得到导出文件LIBMYSQL.def,
    然后在此目录运行MinGW GCC本身自带的命令
dlltool -k -d libmysql.def -l libmysql.a

    得到我们最后需要链接的库文件libmysql.a。
    在Mysql开发包的目录下(即与include和lib同级)新建我们的测试文件main.c,测试源码如下:
#include <stdio.h>
#include <winsock2.h>
#include "mysql.h"
int main()
{
MYSQL mysql;
mysql_init(&mysql);
if(!mysql_real_connect(&mysql, "localhost", "root", "admin", "demo", 3306, NULL, 0))
{
printf("\nconnect error!");
}
else
{
printf("\nconnect success!\n");
}
mysql_close(&mysql);
return 0;
}
    在源文件所在路径运行编译命令:
gcc -Iinclude -Llib main.c -llibmysql

    即编译成功。数据库亦连接成功。
    测试环境:
操作系统:Windows XP Prefessional sp2
数据库版本:MySQL-5.0.22-commu


相关文档:

mysql命令行不执行和命令行中文乱码的解决


1:Mysql 命令不可以执行
原因 :呵呵 比如 show databases 的命令 ,执行完之后 啥也没有 ,仔细 找了原因 ,Oh my god  少了 分号。
应写成:show databases;
2:命令行中文乱码问题
现象:mysql的默认编码设置为utf-8,页面以utf-8的编码方式写入到数据库。用工具查看一切正常,但从mysql的命令行读数据出来 ......

shell 中调用 mysql 操作

#!/bin/bash
#删除100个数据库中的1000个表的过期数据
DBHOST="127.0.0.1"
DBPWD="pwd"
DBUSER="root"
MYSQLBIN="/usr/local/mysql/bin/mysql"
for((dbindex = 0;dbindex < 100;dbindex++))
do
   for((tabindex = 0;tabindex < 10;tabindex++))
   do
    if [&n ......

如何修改SQLPLUS提示符和mysql提示符

作者 小荷||【转载时请务必以超链接形式标明文章原始出处和作者信息】
· 永久链接: http://www.oracleblog.cn/useful-script/prompt-of-sqlplus/
misc@ORALOCAL(192.168.0.49)>
如果你也想和我一样,在sqlplus登录数据库的时候,能提示不少像上面这样详细登录的信息:
1.登录的用户名。当你的数据库中有多个 ......

如何修改mysql root密码

1、编辑MySQL(和PHP搭配之最佳组合)配置文件:
windows环境中:%MySQL(和PHP搭配之最佳组合)_installdir%\my.ini //一般在MySQL(和PHP搭配之最佳组合)安装目录下有my.ini即MySQL(和PHP搭配之最佳组合)的配置文件。
linux环境中:/etc/my.cnf
在[MySQL(和PHP搭配之最佳组合)d]配置段添加如下一行:
skip-grant-tables
......

优化MySQL数据库性能的几个好方法

1、选取最适用的字段属性
  MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号