用C++连接MySQL等数据库二
在上篇《用C++连接MySQL等数据库一》中介绍了C++连接MySQL等数据库的第一种方法——通过ADO连接MySQL数据库,这种方法通过连接不同的字符串来连接不同的数据库。在这篇文中里,笔者继续介绍连接的第二种方法。
(二)通过MySQL自己的API函数进行连接
1、使用API的方式连接,需要加载mysql的头文件和lib文件。在VS2010的附加包含目录中添加\MySQL\MySQL Server 5.1\include。在安装MySql的目录下找。 把libmysql.dll和libmysql.lib文... 阅读全文
用C++连接MySQL等数据库一
现在正做一个接口,通过不同的连接字符串操作不同的数据库。要用到mysql数据库,以前没用过这个数据库,用access和sql server比较多。通过网上的一些资料和自己的摸索,大致清楚了C++连接mysql的方法。可以通过2种方法实现。
第一种方法是利用ADO连接,第二种方法是利用mysql自己的api函数进行连接。第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库。暂时只连接了mysql,sqlserver,oracle,access。对... 阅读全文
linux iowait过高的分析
linux下查找最耗iowait的进程
2010-07-08 13:21
抓哪个进程干坏事前要先停掉syslog
[php]service syslog stop[/php]
打开block dump:
[php]echo 1 > /proc/sys/vm/block_dump[/php]
统计:
[php]dmesg | egrep "READ|WRITE|dirtied" | egrep -o '([a-zA-Z]*)' | sort | uniq -c | sort -rn | head
1423 kjournald
1075 pdflush
209 indexer
3 cronolog
1 rnald
1 mysqld
[/php]
不要忘记在抓完之 后关掉block_dump和启动syslog:... 阅读全文
MySQL源码之偷窥线程
安装完Mysql后,使用VS打开源码开开眼,我嘞个去,这代码和想象中怎么差别这么大呢?感觉代码有些凌乱,注释代码都写的比较随意,好像没有什么统一的规范,不同的文件中代码风格也有差异,可能Mysql经过了很多牛人的手之后,集众牛人之长吧。也可能是我见识比较浅薄,适应了自己的代码风格,井底之蛙了,总之还是怀着敬畏的心情开始咱的源码之旅吧。本人菜鸟,大神轻拍。
Mysql可以启动起来了,应该怎么学习呢?总不能从main开... 阅读全文
解析在MySQL中直接储存图片
在进行MySQL数据库操作的过程中,可能会遇到很多问题,就比如图片文件直接存储的情况,下文中主要为大家介绍MySQL中直接储存图片的知识点,希望对大家能够有所帮助。
如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!
我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。
在mysql中建立一个新的数据库
一个怎样储存文件的例子程序
一个怎样访问文件... 阅读全文
WM同步谷歌通讯录(Windows Mobile)
相信大家都遇过换新手机时会遇到的大麻烦 -> 如何将就的联络人 / 行事历转移到新手机上?
如果今天您更换的厂牌或手机的作业系统是一样的,例如 N95 跳到 N97 or Touch Diamond 跳到 Touch Diamond 2,这种问题原厂其实都已经帮你想好解决方法了,也制作了同步的软体方便使用者无痛转移。
但是若要进行系统的转移,例如Nokia的Symbian系统玩腻了,想跳到Windows Mobile该怎么办呢?这时各个手机厂商可就没这么贴心还会制作备份... ActiveSync, google, Goohle Sync, Sync, Windows Mobile, WM, 谷歌阅读全文
MySQL实现表中取出随机数据
MySQL是开放源代码,MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。 那么如何在MySQL实现表中取出随机数据呢?
SELECT * FROM table_name ORDER BY rand() LIMIT 5;
rand在手册里是这么说的:
RAND()
RAND(N)
返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。
mysql> select RAND();
-> 0.5925
mysql> select RAND(20... 阅读全文
MySQL数据库的主从配置
MySQL数据库是一种功能性不是很强大的关系型数据库管理系统,尽管功能不完善,但MySQL数据库凭借着速度快、适应性好、可靠性高等优点赢得了广大用户的青睐,看MySQL数据库的性能如何,就应该首先从MySQL数据库的配置看起,下文中就为大家详细讲述MySQL数据库的主从配置问题。
server-id一项可自行设置,但尽量不要设为1,也不能和从服务器重复。
需要两台主机,分别担任主服务器和从服务器
主服务器IP:192.168.1.1
从服务器IP:1... 阅读全文
如何加大MYSQL中的最大连接数
mysql数据库是一种应用很好的数据库系统,随着技术的发展进步,mysql数据库的工作量也是很大,这时,默认的连接数就不够用啦,这就需要加大mysql数据库的连接数。有两种办法可以修改最大连接数,一种是修改safe_mysqld,另一种是直接修改原代码并重新编译。下面我们就分别介绍这两种方法:
1.修改safe_mysqld
找到safe_mysqld编辑它,找到mysqld启动的那两行,在后面加上参数 :
-O max_connections=1000
例如 :(其中前面有---... 阅读全文
怎样在MySQL中获得更好的搜索结果
MySQL数据库针对这一问题提供了一种基于内建的全文查找方式的解决方案。在此,开发者只需要简单地标记出需要全文查找的字段,然后使用特殊的MySQL方法在那些字段运行搜索,这不仅仅提高了性能和效率(因为MySQL数据库对这些字段做了索引来优化搜索),而且实现了更高质量的搜索,因为MySQL使用自然语言来智能地对结果评级,以去掉不相关的项目。
此篇文章将向您讲述在MySQL中如何进行全文搜索。
1、设置基本表格
从创建例子表格... 阅读全文
MySQL字符集:保证不发生乱码的方法
数据库中关于字符集的种类有很多,对编程有影响的主要是客户端字符集和数据库字符集(还有一个服务器字符集,不知道干什么用的)。数据库中常用的操作就是保存数据和读取数据,在这过程中,乱不乱码和数据库字符集貌似没有什么关系。我们只要保证写入时选择的字符集和读取时选择的字符集一致,即只需保证两次操作的客户端字符集一致即可。
客户端字符集的设置,依据客户端不同方法不同:
1. 使用控制台连接,在my.ini文件中的clie... 阅读全文
如何正确编写高质量高性能的MySQL语法
在应用系统开发初期,由于开发MySQL数据库数据比较少,对于查询SQL语句,复杂视图的编写,刚开始不会体会出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着MySQL数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可达到上百倍,可见对于一个系统不是简单的能实现其功能就... 阅读全文
MySQL数据库的异常处理
MySQL数据库操作过程中难免会出现会出现一些异常情况,遇到这种情况是,下文中介绍的内容将会帮助到大家。
对于MySQL的异常处理:
标准格式
以下为引用的内容:
DECLARE handler_type HANDLER FOR condition_value[,...] statement
handler_type:
CONTINUE
| EXIT
| UNDO --暂时不支持
condition_value:
SQLSTATE [VALUE] sqlstate_value
| condition_name
| SQLWARNING
| NOT FOUND
| SQLEXCEPTION
| mysql_error_code
conditi... 阅读全文
如何对MySQL服务器进行调优
如今,社会讲求的就是快速,什么事都要有效率,当然MySQL服务器也是要有效率。开发人员不断地开发和部署使用LAMP(Linux?、Apache、MySQL 和 PHP/Perl)架构的应用程序。但是,服务器管理员常常对应用程序本身没有什么控制能力,因为应用程序是别人编写的。本文重点讨论为实现最高效率而对数据库层进行的调优。
有3种方法可以加快MySQL服务器的运行速度,效率从低到高依次为:
第一种方法时替换有问题的硬件。对MySQL进程的设置... 阅读全文
SQL到NOSQL的思维转变
NOSQL系统一般都会宣传一个特性,那就是性能好,然后为什么呢?关系型数据库发展了这么多年,各种优化工作已经做得很深了,NOSQL系统一般都是吸收关系型数据库的技术,那么,到底是什么因素束缚了关系型数据库的性能呢?我们从系统设计的角度看这个问题。
1. 索引支持
关系型数据库创立之初没有想到今天的互联网应用对可扩展性提出如此高的要求,因此,设计时主要考虑的是简化用户的工作,SQL语言的产生促成数据库接口的标准化... 阅读全文
通向MySQL神秘王国的图形化之
MySQL GUI Tools是一套图形化桌面应用工具套装,可以用来管理MySQL服务器。该套装工具包含三个工具:MySQL Query Browser、MySQL Administrator和MySQL Migration Assistant(仅支持Windows平台)。在本文中,我们将介绍前两个工具,看一下它们是如何帮助我们在不使用命令行的方式来管理MySQL数据库。
MySQL GUI Tools的安装非常简单,在Ubuntu、Debian或Fedora Linux上,你可以通过包管理器来装它,在Ubuntu和Debian上,其程序包... 阅读全文
在MySQL数据库中如何来复位根用户的密码
如果你从未为MySQL设置根用户密码,服务器在以根用户身份进行连接时不需要密码。但是,建议你为每个账户设置密码。如果你以前设置了根用户密码,但却忘记了该密码,可设置新的密码。下述步骤是针对Windows平台的。下文就为大家讲解解决在MySQL数据库中恢复根用户密码的问题。
在Windows平台下,该步骤是:
以系统管理员身份登录到系统。
如果MySQL服务器正在运行,停止它。对于作为Windows服务运行的服务器,进入服务管理器:
... 阅读全文
如何在MySQL查询结果集中得到记录行号
如果需要在查询语句返回的列中包含一列表示该条记录在整个结果集中的行号, ISO SQL:2003 标准提出的方法是提供 ROW_NUMBER() / RANK() 函数。 Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的 ROWNUM ; MS SQL Server 则在 2005 版本中提供了 ROW_NUMBER() 函数;但在 MySQL 中似乎还没有这样的系统自带功能。虽然 LIMIT 可以很方便的对返回的结果集数量和位置进行过滤,但过滤出来的记录的行号却没办法被 SELE... 阅读全文
由浅入深讲解MySQL数据库索引的选择性
数据库索引就好比是一本书的目录部分,便于大家查找数据库中数据,方便快捷,给数据库管理员的工作带来了很多的便利。在MySQL数据库中,对于索引的使用并是一直都采用正确的决定。
简单表的示例:
CREATE TABLE `r2` (
ID` int(11) DEFAULT NULL,
ID1` int(11) DEFAULT NULL,
CNAME` varchar(32) DEFAULT NULL,
KEY `ID1` (`ID1`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
SELECT COUNT(*) FROM r2;
250001 (V1)
SELECT COUNT(*... 阅读全文
对抗MySQL数据库解密高手
数据库安全问题是人们一直以来关注的热点,数据库是一个企业的核心,数据库安全更是最为重要的工作,那么,为了使一个MySQL系统安全,强烈要求你考虑下列建议……
当你连接一个MySQL服务器时,你通常应该使用一个口令。口令不以明文在连接上传输。所有其它信息作为能被任何人读懂的文本被传输。如果你担心这个,你可使用压缩协议(MySQL3.22和以上版本)使事情变得更难。甚至为了使一切更安全,你应该安装ssh。用它,你能在一个MySQ... 阅读全文