在DEV C++下,用C和MYSQL进行连接失败

在DEV C++下,用C和MYSQL进行连接失败,第1张

给你个例子:

这个是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

}

MySQL 安装和启动服务,以及遇到的问题MySQL版本: mysql-5.7.13-winx64.zip (免安装,解压放到程序文件夹即可,比如 C:\Program Files\mysql-5.7.13-winx64)下载地址:http//dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-winx64.zip遇到的问题:1. MySQL service 已经安装成功,创建了空的data文件夹,也填了初始化ini文件,但是无法启动2. cmd 执行指令 “mysql -uroot -p” 时提示:“ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)”3. Windows服务管理启动MySQL服务时提示:“本地计算机 上的 MySQL 服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止。”4. mysql 日志文件提示:“2016-07-12T08:14:12.661749Z 0 [Note] Plugin 'FEDERATED' is disabled. MySQL: Table 'mysql.plugin' doesn't exist”解决问题:其实这几个问题都是因为mysql 的初始化ini文件不正确导致,请注意以下几点1. 不能使用原有的初始化文件my-default.ini直接修改,那个只是给我们参考,在当前文件夹复制创建一个新的my.ini文件,填写好basedir和datadir 然后保存。# These are commonly set, remove the # and set as required.# basedir = C:\Program Files\mysql-5.7.13-winx64# datadir = C:\Program Files\mysql-5.7.13-winx64\data2. 创建data文件夹,且必须是空文件夹,如果已经有跑出一些mysql日志文件在这里,请删掉全部文件。3. 注册服务时CMD必须进bin目录,要不然会出错。执行cmd 命令:mysqld –initialize -insecure –user=mysqlC:\Program Files\mysql-5.7.13-winx64\bin4. mysql启动问题access denied for user 'root'@'localhost'(using password:YES)安装Mysql后利用SQLyogEnt启动是提示“access denied for user 'root'@'localhost'(using password:YES)”,开始我还为是因为是密码问题,后来上网查了查才知道root权限问题,我想可能是因为win7系统我在安装时没用以管理员身份进行安装,所以root角色没有权限,从网上找了一个解决方案解决了,在这里记录一下:1. 管理员登陆系统,停止mysql服务或者结束mysqld-nt进程;2. 进入命令行,来到mysql的安装目录.假设安装目录为 d:\mysql\ , CMD进入命令行;3. 运行 D:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld-nt --skip-grant-tables启动mysql,关闭权限的检查;4. 运行 D:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin -u root flush-privileges password "newpassword" 重设root密码;5. 重新启动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)中,这两者都有


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/7448180.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存