这个是DEV C++编译通过的
#include <windows.h>
#include <iostream>
#include <mysql/mysql.h>
#define SELECT_QUERY "select * from stu "
using namespace std
int main(int argc, char *argv[])
{
//connection params
char *host = "localhost"
char *user = "root"
char *pass = "123"
char *db = "mydb"
//sock
MYSQL *sock
MYSQL_RES *res
sock = mysql_init(0)
if (sock) cout <<"sock handle ok!" <<endl
else{
cout <<"sock handle failed!" <<endl
return EXIT_FAILURE
}
//connection
if (mysql_real_connect(sock, host, user, pass, db, 0, NULL, 0))
cout <<"connection ok!" <<endl
else{
cout <<"connection failed!" <<endl
return EXIT_FAILURE
}
//query
if (mysql_query (sock, SELECT_QUERY ))
{
cout <<"Query failed " <<mysql_error(sock) <<endl
exit(1)
}
if ( !( res = mysql_store_result( sock )))
{
cout <<"Couldn't get result from " <<mysql_error(sock) <<endl
exit(1)
}
MYSQL_FIELD *field
MYSQL_ROW row
while ((field = mysql_fetch_field(res)))
{
printf("field name %s ", field->name)
}
while ( row = mysql_fetch_row ( res ))
{
cout<<row[0]<<" "<<row[1]<<endl
}
system("PAUSE")
//closing connection
mysql_free_result ( res )
mysql_close(sock)
return EXIT_SUCCESS
}
今天看着看着代码,突然就想学学linux下c中怎么连接mysql数据库的。带着好奇的心理编写了,最最简单的连接程序:#include <stdio.h>
#include <mysql.h>
MYSQL *mysql//首先要定义个mysql对象,来实现初始化。
main (void){
mysql_init(&mysql)//初始化mysql数据库
if(mysql_real_connect(&mysql,"localhost","root","123qwe","test",3306,0,0)){//此方法是用于连接mysql数据库的,详细参数请参照:http://dev.mysql.com/doc/refman/5.1/zh/apis.html#mysql-real-connect
printf("OK\n")//成功,输出OK
return 0
}
else {
printf("ERORR\n")//失败输出ERORR
}
}
简单编译下:gcc -0 test_sql test_sql.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
悲催的来了:test_sql.c:2: fatal error: mysql.h: 没有那个文件或目录.
居然告诉我说没有mysql.h这个文件,可是实验了,我确实安装了mysql了啊。。。。。。。
我想可能是缺少lib库了吧,百度啊,google啊,一顿搜,哦!~
原来是缺少libmysqlclient-dev,OK安装就是了,apt-get install libmysqlclient-dev
继续编译,结果:
test_sql.c: In function ‘main’:
test_sql.c:7: warning: passing argument 1 of ‘mysql_init’ from incompatible pointer type
/usr/include/mysql/mysql.h:434: note: expected ‘struct MYSQL *’ but argument is of type ‘struct MYSQL **’
test_sql.c:8: warning: passing argument 1 of ‘mysql_real_connect’ from incompatible pointer type
/usr/include/mysql/mysql.h:441: note: expected ‘struct MYSQL *’ but argument is of type ‘struct MYSQL **’
文件格式:mysql-noinstall-version-win32.zip在安装之前,请下载mysql-noinstall-5.1.31-win32.zip和mysql-noinstall-5.0.77-win32.zip这两个文件。
由于MySQL一直在升级,所以当您阅读本文时,或许在其官方网站上已提供了新的正式版下载,因此,请进入MySQL下载页面http://dev.mysql.com/downloads/ 查找当前的最新可用版本。
另外,在下载过程中,会提示你需要注册为网络用户,这是一个很简短的过程,它需要您提供一个有效的email地址。当然,如果不注册的话,你也可以跳过此步,直接下载既可。
2、解压缩并放置到你期望的目录下
(建议放置在不包含空格的目录下,如E:\mysql )
为了方便,修改解压缩后的文件夹名为mysql,并放置在C:\mysql (因为是配置文件里默认的路径。)
将下载后的mysql-noinstall-5.0.77-win32.zip解压到%MySQL_HOME%(此处%MySQL_HOME%表示MySQL的安装路径,如我将其解压至E:\dev\,为了方便,修改解压缩后的文件夹名为mysql-5.1.31)。另外,为了便于日后备份和升级,最好把安装文件中的data目录存放在其它地方。此处,我在E盘新建一个目录"MySQL5.1Data",然后把"E:\dev\mysql-5.1.31"目录下的"data"子目录剪切到"E:\MySQL5.1Data"目录中。
3、创建一个配置文件
对于服务器每次启动都用到的选项和对MySQL服务的一些设置,你会发现使用配置文件来指定MySQL配置非常方便。
MySQL配置文件,一般放在Windows系统目录中,如C:\WINDOWS 或C:\WINNT ,名为my.ini 。但是,此处我们是安装两个MySQL,因此将其放在MySQL解压缩后的文件夹中。在该文件夹中,一般包含5个MySQL自带的配置文件,my-small.ini、my-medium.ini、my-large.ini、my-huge.ini和my-innodb-heavy-4G.ini,请你根据自己机器的内存大小,选择其一,并把它重新命名为my.ini用作基本配置文件。
配置文件中的一些参数,需要根据安装目录的不同,做相应的修改,如
[WinMySQLAdmin]
Server=E:/dev/mysql-5.1.31/bin/mysqld.exe
[mysqld]
basedir=E:/dev/mysql-5.1.31
datadir=E:/MySQL5.1Data/data
default-character-set=gbk
port=3306
[client]
default-character-set=gbk
port=3306
4、将MySQL加入到Windows 的服务中
打开MS-DOS窗口,进入DOS环境,切换到"%MySQL_HOME%\bin"目录
运行:
%MySQL_HOME%\bin>mysqld --install mysql5.1
(此时,在运行中输入"services.msc"或者打开"控制面板"->"管理工具"->"服务",可以看到服务列表中存在"MySQL5.1"服务。如果不希望它自动运行,也可以改为手动,这样,当你不用它的时候,也可以节省内存。)
5、启动和停止MySQL服务
%MySQL_HOME%\bin>net start mysql
或者进入DOS环境,进入如下目录运行:%MySQL_HOME%\bin\mysqld.exe
(或直接双击mysqld.exe文件),即可启动MySQL服务
%MySQL_HOME%\bin>net stop mysql(停止MySQL服务)
注:如果要卸载MySQL服务,请运行%MySQL_HOME%\bin>mysqld --remove
(如果你不再需要MySQL了,请先停掉MySQL的服务,然后再把MySQL的服务卸载掉,最后删除MySQL安装目录即可。)
6、进入MySQL。
%MySQL_HOME%\bin\mysql -uroot -p (密码为空)
(如果出现ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)提示,表示MySQL服务没有被启动,其主要的原因在于,配置文件写的不对。
如果出现ERROR 1045 (28000): Access denied for user [email=]'root'@'localhost'[/email] (using password: NO)提示,表示MySQL服务已经启动,但是你所输入的密码不正确。
如果出现1067的错误:A system error has occurred.System error 1067 has occurred.The process terminated unexpectedly.提示,无法启动MySQL服务,进程意外终止,表示你的配置文件有问题,请检查my.ini里面的路劲是否写错了或者试着删除MySQL5.1Data文件中的LOG文件。)
mysql>select version()(显示目前你所安装的MySQL的数据库版本信息)
如果上面的所有 *** 作步骤均正常的话,那么恭喜你,你已安装好了MySQL 5.1,下面我们继续安装MySQL 5.0.
(二)安装MySQL 5.0
安装MySQL 5.0的步骤与安装MySQL 5.1的步骤类似,其中,有两个需要注意的地方为,
(1)在创建MySQL 5.0的配置文件时,port要设置成非3306(如3307等)端口。
(2)将MySQL加入到Windows 的服务中:
打开MS-DOS窗口,进入DOS环境,切换到"%MySQL_HOME%\bin"目录
运行:
%MySQL_HOME%\bin>mysqld-nt --install mysql5.0
注意:mysqld(或mysqld.exe)是 MySQL server数据库服务器的相关程序,而mysqld-nt(或mysqld-nt.exe)是MySQL Daemon数据库服务的相关程序,在MySQL 5.1(此处的版本为5.1.31)中仅有mysqld(或mysqld.exe),在MySQL 5.0(此处的版本为5.0.77)中,这两者都有
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)