云服务器 mysql数据库库怎么连接服务器

编程开发子分类1. 在SQL SERVER端安装MYSQL的ODBC驱动
2. 在ODBC数据源添加MYSQL(控制面板\所有控制面板项\管理工具)
在用户DSN 和系统DSN添加配置驱动程序
注:字符集一定要和Mysql服务器相对应,如果Mysql使用了gbk字符集,则一定要设置字符集为gbk,否则导入到Sql 可能会出现问号乱码。
3.在SQL SERVER端建立连接服务器
填写之后可能会出来密码不对等,需要在安全性中填写连接需要的用户名和密码
测试连接成功就可以了。
阅读(...) 评论()您所在的位置: &
C++连接mysql数据库的两种方法
C++连接mysql数据库的两种方法
本文主要介绍了C++连接mysql数据库的两种方法,希望通过本文,能对你有所帮助,一起来看。
现在正做一个接口,通过不同的连接字符串操作不同的数据库。要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多。通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法。可以通过2种方法实现。
第一种方法是利用ADO连接,
第二种方法是利用mysql自己的api函数进行连接。
第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库。暂时只连接了mysql,sqlserver,oracle,access。对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说。第二种方法只能针对于mysql数据库的连接,不过用这种方法不用安装MyODBC服务器程序。
不管用哪种方法,首先需要安装Mysql数据库,安装方法请看&mysql安装及一些注意点&。最好安装一个Navicat for mysql,方便操作mysql数据库。下面分别说下这两种方法:
(一)通过ADO连接MySql数据库
1、通过ADO连接MySql数据库,首先得安装MyODBC服务器程序。
MyODBC版本要和MySql的版本对应上,否则会连接不上数据库。我用的版本分别是mysql-5.1.48-win32.msi和mysql-connector-odbc-5.1.5-win32.msi。
安装好后,点击开始菜单-&设置-&控制面板-&管理工具-&数据源(ODBC)-&用户DSN-&添加-&选择MySQL ODBC 5.1 Driver。如下图:
然后双击MySQL ODBC 5.1 Driver进行配置。配置好可以点Test进行下测试(如下图),如果能连上会弹出connection successful对话框。
上图中的Data Source Name:中的内容就是代码里DSN所对应的值。
例如:&DSN=MySqlODBC;server=database=test&。
2、配置好后,就可以开始编码了。
(1)首先导入ADO类型库。#import &c:\program files\common files\system\ado\msado15.dll& no_namespace rename(&EOF&,&adoEOF&)。您的环境中msado15.dll不一定在这个目录下,请按实际情况修改。或者把msado15.dll这个文件拷贝到你的工程目录下,直接#import &msado15.dll& \ no_namespace \rename (&EOF&, &adoEOF&)包含进来。
(2 )创建Connection对象并连接数据库
{& &CoInitialize(NULL);& &m_pConnection.CreateInstance(__uuidof(Connection));& &try&{ &&m_pConnection-&ConnectionTimeout&=&5; &&HRESULT&hr&=&m_pConnection-&Open(&DSN=MySqlODBC;server=database=test&,&root&,&root&,adModeUnknown); &} &catch(_com_error&&e) &{ &MessageBox(NULL,&e.Description(),&_T(&&),&MB_OK); &return&FALSE; &}& &return&TRUE; &}&&
(3)执行SQL语句
BOOL&CDBManagerSub::ExecuteSQL(&_bstr_t&bstrSQL&) &{ &&try&{ &&if(m_pConnection&==&NULL) &{ &&Open(m_dbType,&m_strServer,&m_strUserName,&m_strPasswor,&m_strDBName); &} &&&&&&&_RecordsetPtr&hr&=&m_pConnection-&Execute(bstrSQL,NULL,adCmdText); &return&true; &} &catch(_com_error&e) &{ &MessageBox(NULL,&e.Description(),&_T(&&),&MB_OK); &return&false; &} &}&&
_bstr_t bstrSQL为输入的SQL语句,如果返回TRUE,则执行成功,返回FLASH则会报对应的错误提示。
例如:下面的创建testTable表的SQL语句:
char*&pQuery&=&&create&table&if&not&exists&testTable(&ID&VARCHAR(10),&Name&VARCHAR(255),Descs&VARCHA(255),PRIMARY&KEY&(ID))&; &ExecuteSQL(pQuery);&&
&3、附上mysql数据库的操作,方便没有安装Navicat for mysql的朋友参考。
打开&开始-&所有程序-&MySQL-&MySQL Server 5.0-&MySQL Command Line Client.exe&,如果没有设置密码就直接按回车,会提示服务器启动成功。
mysql&&SHOW&DATABASES;//显示所有的数据库,注意一定要&敲&;&后再按回车 &mysql&&CREATE&DATABASE&//创建数据库 &mydbmysql&&USE&//选择你所创建的数据库 &mydbmysql&&SHOW&TABLES;&//显示数据库中的表 &mysql&&CREATE&TABLE&mytable&(username&VARCHAR(100),&visitelist&VARCHAR(200),remark&VARCHAR(200),PRIMARY&KEY&(username));//创建一个表mytable:&用户名;访问列表,主键为username &mysql&&DESCRIBE&//显示表的结构
(二)通过MySQL自己的API函数进行连接
1、使用API的方式连接,需要加载mysql的头文件和lib文件。
在VS2010的附加包含目录中添加\MySQL\MySQL Server 5.1\include。在安装MySql的目录下找。 把libmysql.dll和libmysql.lib文件拷贝到所建的工程目录下。然后在头文件里包含以下内容:
//mysql所需的头文件和库文件 &#include&&winsock.h&&#include&&mysql.h&&#pragma&comment(lib,&libmySQL.lib&)&
2、进行编码
(1)连接mysql数据库
头文件里定义数据源指针 MYSQL m_sqlC
//连接MySql数据库
try&{ &mysql_init(&m_sqlCon); &&if(!mysql_real_connect(&m_sqlCon,&&localhost&,&root&,&root&,&test&,3306,NULL,0)) &{ &AfxMessageBox(_T(&数据库连接失败!&)); &return&FALSE; &}& &return&TRUE; &} &catch&(...) &{ &return&FALSE; &}&
(2)关闭数据库
mysql_close(&m_sqlCon);&
(3)创建表
char*&pQuery&=&&create&table&if&not&exists&DS_Building(&ID&VARCHAR(10),Name&VARCHAR(255),Descs&VARCHAR(255),PRIMARY&KEY&(ID))&& &if(mysql_real_query(&m_sqlCon,pQuery,(UINT)strlen(pQuery))!=0) &{& &const&char*&pCh&=&mysql_error(&m_sqlCon); &return&FALSE; &}&
附MySQL的API接口:
mysql_affected_rows()&返回被最新的UPDATE,&DELETE或INSERT查询影响的行数。 &mysql_close()&关闭一个服务器连接。 &mysql_connect()&连接一个MySQL服务器。该函数不推荐;使用mysql_real_connect()代替。 &mysql_change_user()&改变在一个打开的连接上的用户和数据库。 &mysql_create_db()&创建一个数据库。该函数不推荐;而使用SQL命令CREATE&DATABASE。 &mysql_data_seek()&在一个查询结果集合中搜寻一任意行。 &mysql_debug()&用给定字符串做一个DBUG_PUSH。 &mysql_drop_db()&抛弃一个数据库。该函数不推荐;而使用SQL命令DROP&DATABASE。 &mysql_dump_debug_info()&让服务器将调试信息写入日志文件。 &mysql_eof()&确定是否已经读到一个结果集合的最后一行。这功能被反对;&mysql_errno()或mysql_error()可以相反被使用。 &mysql_errno()&返回最近被调用的MySQL函数的出错编号。 &mysql_error()&返回最近被调用的MySQL函数的出错消息。 &mysql_escape_string()&用在SQL语句中的字符串的转义特殊字符。 &mysql_fetch_field()&返回下一个表字段的类型。 &mysql_fetch_field_direct&()&返回一个表字段的类型,给出一个字段编号。 &mysql_fetch_fields()&返回一个所有字段结构的数组。 &mysql_fetch_lengths()&返回当前行中所有列的长度。 &mysql_fetch_row()&从结果集合中取得下一行。 &mysql_field_seek()&把列光标放在一个指定的列上。 &mysql_field_count()&返回最近查询的结果列的数量。 &mysql_field_tell()&返回用于最后一个mysql_fetch_field()的字段光标的位置。 &mysql_free_result()&释放一个结果集合使用的内存。 &mysql_get_client_info()&返回客户版本信息。 &mysql_get_host_info()&返回一个描述连接的字符串。 &mysql_get_proto_info()&返回连接使用的协议版本。 &mysql_get_server_info()&返回服务器版本号。 &mysql_info()&返回关于最近执行得查询的信息。 &mysql_init()&获得或初始化一个MYSQL结构。 &mysql_insert_id()&返回有前一个查询为一个AUTO_INCREMENT列生成的ID。 &mysql_kill()&杀死一个给定的线程。 &mysql_list_dbs()&返回匹配一个简单的正则表达式的数据库名。 &mysql_list_fields()&返回匹配一个简单的正则表达式的列名。 &mysql_list_processes()&返回当前服务器线程的一张表。 &mysql_list_tables()&返回匹配一个简单的正则表达式的表名。 &mysql_num_fields()&返回一个结果集合重的列的数量。 &mysql_num_rows()&返回一个结果集合中的行的数量。 &mysql_options()&设置对mysql_connect()的连接选项。 &mysql_ping()&检查对服务器的连接是否正在工作,必要时重新连接。 &mysql_query()&执行指定为一个空结尾的字符串的SQL查询。 &mysql_real_connect()&连接一个MySQL服务器。 &mysql_real_query()&执行指定为带计数的字符串的SQL查询。 &mysql_reload()&告诉服务器重装授权表。 &mysql_row_seek()&搜索在结果集合中的行,使用从mysql_row_tell()返回的值。 &mysql_row_tell()&返回行光标位置。 &mysql_select_db()&连接一个数据库。 &mysql_shutdown()&关掉数据库服务器。 &mysql_stat()&返回作为字符串的服务器状态。 &mysql_store_result()&检索一个完整的结果集合给客户。 &mysql_thread_id()&返回当前线程的ID。 &mysql_use_result()&初始化一个一行一行地结果集合的检索。&
通过本文的介绍,希望你对C++连接mysql数据库的两种方法有所了解,供参考。
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
MySQL 5.6.10已经发布,Oracle将其称之为MySQL 5.6正式版。51CTO
作为移动开发者,WOT2016移动互联网技术峰会,绝对有你不得不来的理由。
十一归来,貌似大家都没有什么劲头。本周五,为期两天
《待字闺中:编程面试题集》集合最新最全的面试经验和
这周Windows8.1正式版发布了,不知道各位有没有去更新
本书是一本以示例形式直接面向应用的网络管理图书。书中以大量示例和大量实用网络管理与故障排除经验介绍了当前网络管理工作的各
51CTO旗下网站

我要回帖

更多关于 怎么连接服务器数据库 的文章

 

随机推荐