9core.com - 九核技术交流网

九百链
为了更好的解决实际工作中遇到的问题,本站开设了QQ群 ASP+PHP+JSP+.NET①:9793624
ASP+PHP+JSP+.NET②:17775294
网站通告: 新开设QQ群,群号:17775294 九核WEB技术专业论坛 官方QQ群 9793624
搜索: 您的位置主页> 程序开发 > 数据库技术 >
  • 2008-05-09向你介绍MySQL数据库备份的简单知识
  • 在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已经知道表以破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事! 备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp、cpio或tar等)。每种方法都有其优缺点: mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数据库,也会发生同样的问题:如果数据库表在文件系统备份过程中被修改,进入备份的表文件主语不一致的状态,而对以后的恢复表将失去意义。文件系统备份与直接拷贝文件的区别是对后者你完全控制了备份过程,这样你能采取措施确保服务器让表不受干扰。 mysqldump比直接拷贝要慢些。 mysqldump生成能够移植到其它机器的文本文件,甚至那些有不同硬件结构的机器上。直接拷贝文件不能移植到其它机器上,除非你正在拷贝的表使用 MyISAM存储格式。ISAM表只 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-09MySQL中如何灵活运用tips功能
  • 1、用mysql内置函数转换ip地址和数字利用两个内置函数inet_aton:将ip地址转换成数字型inet_ntoa:将数字型转换成ip地址2、充分利用mysql内置的format函数尤其是在处理字符格式的时候,例如将12345转换成12,345这样的,只要用:format(12345,0)即可,如果用format(12345,2)则显示的是12,345.00了...3、利用mysql的内置函数处理时间戳问题eg : select FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');结果: 2004 3rd August 03:35:48 20044、利用mysql_convert_table_format转换表类型需要DBI和DBD的mysql相关模块支持才能用,例子:mysql_convert_table_format --user=root --password='xx' --type=myisam test yejr5、修改mysql表中的字段名alter table tb_name change old_col ne .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-09MySQL数据库批量导入脚本
  • <?php //File: query.php //描述: 数据库批量导入脚本 //功能: 可进行单行和批量插入. //作者: SworDs //QQ: 78623269 //日期: 2005-1-21 //其他:好老了啊,刚学PHP写的,连抄带查!2006.5.19从仓库里翻出来,。。。 error_reporting(7); if ( function_exists('ini_get') ) { $onoff = ini_get('register_globals'); } else { $onoff = get_cfg_var('register_globals'); } if ($onoff != 1) { @extract($_POST, EXTR_SKIP); @extract($_GET, EXTR_SKIP); } // 去掉转义字符 function stripslashes_array(&$array) { while(list($key,$var) = each($array)) { if ($key != 'argc' && $ke .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-09优化MySQL数据库查询的三种方法简介
  • 在优化查询中,数据库应用(如MySQL)即意味着对工具的操作与使用。使用索引、使用EXPLAIN分析查询以及调整MySQL的内部配置可达到优化查询的目的。 任何一位数据库程序员都会有这样的体会:高通信量的数据库驱动程序中,一条糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉更多的数据库时间,且它将对其他应用组件产生影响。 如同其它学科,优化查询性能很大程度上决定于开发者的直觉。幸运的是,像MySQL这样的数据库自带有一些协助工具。本文简要讨论诸多工具之三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置。 1、使用索引 MySQL允许对数据库表进行索引,以此能迅速查找记录,而无需一开始就扫描整个表,由此显著地加快查询速度。每个表最多可以做到16个索引,此外MySQL还支持多列索引及全文检索。 给表添加一个索引非常简单,只需调用一个CREATE INDEX命令并为索引指定它的域即可。列表A给出了一个例子:   mysql> CREATE INDEX idx_use .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-09MySQL 4.1数据库中数据转换注意事项
  • mysql 4.1增加了编码的支持,所以在转换旧数据的时候稍微麻烦一些,但只要注意以下几点,基本没问题的:1、转换之前一定要先把原有数据dump出来,一般原有数据都是gb2312编码吧,dump命令如下:mysqldump -u -p database –add-drop-table –extended-insert–add-drop-table是为了导入的时候省去建表环节,–extended-insert是为了防止在导入的时候一个sql语句过大的情况,想想你的上千条记录写在一条sql语句中是多么的恐怖。这里假定原有数据库是gb2312编码,需要转换为utf8编码,其它编码之间的转换类似。2、修改dump出来的sql文件,用Emeditor或iconv把文件的编码转换为utf-8,注意最好不要那个什么“Unicode Signature(BOM)”,因为mysql.exe不认的。再把文件中的gbk_bin替换为utf8_general_ci,把gbk替换为 utf8,然后在文件最前面加上set names utf8 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-09用新的PHP插件实现MySQL为基础的事务
  • 事务处理支持很长时间以来一直是大多数MySQL开发者的心愿,随着MySQL 4.0的发布,这个心愿最后终于得以实现。MySQL 4.0后不久,拥有一个新的MySQL插件的PHP 5.x也发布了。这个新插件,MySQL Improved,使得PHP开发者通过利用本地的PHP函数,获得了这些新的事务处理能力。这篇简短的教程将向你说明怎样利用这些新的MySQLi函数,用PHP实现以MySQL为基础的事务。概要如果你还不知道,那么我可以告诉你,事务只是一组SQL语句,通常因为它们是彼此相互依赖的,所以要在全有或全无(all-or-nothing)的模式下执行。只有当所有组成的语句都执行成功了,一个事务才算是成功了;任何一个语句中的失败应该都会导致系统“回滚”到它先前的状态,以避免数据连接/崩溃问题。对于这一点,两个银行帐户间的转帐是一个很好的例子。在数据库级,这样的转帐包括两个步骤:首先,从源帐户中扣除转帐的金额,然后将其加到目标帐户中。如果在第二步中发生了错误,那么第一步就必须被取消,以避免不相符的情况(和愤怒的客户聚众滋事)。事务安全系统将自动地撤到系统先前的&ld .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-09保护MySQL数据库中重要的数据注意事项
  • 与自动的数据库备份不同,对系统管理员来说,保护数据免受未授权用户的侵犯需要采取一定的行动。如果你用的是MySQL,就可以使用一些方便的功能来保护系统,来大大减少机密数据被未授权用户访问的风险。企业最有价值的资产通常是其数据库中的客户或产品信息。因此,在这些企业中,数据库管理的一个重要部分就是保护这些数据免受外部攻击,及修复软/硬件故障。在大多数情况下,软硬件故障通过数据备份机制来处理。多数数据库都自带有内置的工具自动完成整个过程,所以这方面的工作相对轻松,也不会出错。但麻烦却来自另一面:阻止外来黑客入侵窃取或破坏数据库中的信息。不幸的是,一般没有自动工具解决这一问题;而且,这需要管理员手工设置障碍来阻止黑客,确保公司数据的安全。不对数据库进行保护的常见原因是由于这一工作“麻烦”而“复杂”。这确实是事实,但如果你应用MySQL,就可以使用一些方便的功能来显著减少面临的风险。下面列出了六项功能:第一步:删除授权表中的通配符MySQL访问控制系统通过一系列所谓的授权表运行,从而对数据库、表格或栏目级别的用户访问权利进行定义。但这些表格允许管理员 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-09教你如何使用触发器管理MySQL数据库
  • 在SQL中,名词触发器指“在数据库中为响应一个特殊表格中的某些事件而自动执行的程序代码。”(Wikipedia)说得简单一些,它是在一个特殊的数据库事件,如INSERT或DELETE发生时,自动激活的一段代码。触发器可方便地用于日志记录、对单个表格到其他链接式表格进行自动的“层叠式”更改、或保证对表格关系进行自动更新。当一个新整数值增加到数据库域中时,自动更新运行的总数的代码段是一个触发器。自动记录对一个特殊数据库表格所作更改的SQL命令块也是一个触发器实例。触发器是MySQL 5.x的新功能,随着5.x代码树新版本的出现,这一功能也逐渐得到改善。在本文中,我将简单介绍如何定义并使用触发器,查看触发器状态,并如何在使用完毕后删除触发器。我还将为你展示一个触发器在现实世界中的应用实例,并检验它对数据库记录的改变。一个简单实例通过简单(虽然是人为的)实例来说明是了解MySQL触发器应用的最佳办法。首先我们建立两个单域的表格。一个表格中为姓名列表(表格名:data),另一个表格中是所插入字符的字符数(表格名:chars)。我希望在data表格中 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-09在MySQL中获得更好的全文搜索结果
  • 很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录。在后台,这些程序使用在一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候。MySQL针对这一问题提供了一种基于内建的全文查找方式的解决方案。在此,开发者只需要简单地标记出需要全文查找的字段,然后使用特殊的MySQL方法在那些字段运行搜索,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜索),而且实现了更高质量的搜索,因为MySQL使用自然语言来智能地对结果评级,以去掉不相关的项目。这篇文章将向您讲述在MySQL中如何进行全文搜索。1、设置基本表格从创建例子表格开始,使用以下的SQL命令:mysql> CREATE TABLE reviews (id INT(5) PRIMARY KEY NOT NULL AUTO_INCREMENT, data TEXT);以上命令创建了一个简单的音乐专集资料库(主要是整段的文字),然后向这个表格中添加一些记录:mysql> INSE .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-08关于MySQL数据库的用户认证系统分析
  • 这两天受朋友的托付,要我帮他写一个使用MySQL数据库的用户认证系统。我当然不好推脱的,只得耗费了一晚上的休息时间,写了个很简单的PHP程序。由于赶的很仓卒,可能会太简陋了些,而且可能还会有错误和漏洞。有兴趣看看的朋友如果有什么更好的方法或建议,请email我.在这儿先谢谢了!用户认证的原理很简单:首先需要用户在页面上填入用户名和密码,当然没注册的用户需要先注册。然后调用数据库搜索是否有相应的用户。如果有就确认,没有则提醒用户先注册。使用PHP来完成这一切很简单,但需要注意的是如果想在以后的页面中都能确认用户身份,使用PHP3我只能想出使用cookie的方法。要想使用session,就只能等待PHP4正式版的发布了!第一步是做一个登录的页面,这儿就不多讲了。我只做了个极简单的,大家自己做得漂亮点。第二步开始登录后的确认程序的设计。login.php:mysql_connect("localhost","user","password") /*连接数据库,用户名和密码自行修改*/ or die("无法连接数据库,请重试 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-08通过数据库引擎来加速MySQL数据库
  • 如果你是个赛车手,并且按一下按钮就能够立即更换引擎而不需要把车开到车库里去换,那会是什么感觉呢?MySQL数据库为开发人员所做的就好像是按按钮换引擎;它让你选择数据库引擎,并给你一条简单的途径来切换它。MySQL的自带引擎肯定是够用了,但是在有些情况下,其他的引擎可能要比手头所用更适合完成任务。如果愿意的话,你甚至可以使用MySQL++ API来创建自己的数据库引擎,就像打穿气缸装上自己的化油器。现在让我们来看看你该如何选择引擎,以及如何在可用引擎之间切换。选择你的引擎你能用的数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MySQL。仅仅为了添加一个特性而编译应用程序的概念对于Windows的开发人员来说可能很奇怪,但是在UNIX世界里,这已经成为了标准。在缺省情况下,MySQL支持三个引擎:ISAM、MyISAM和HEAP。另外两种类型InnoDB和Berkley(BDB),也常常可以使用。ISAMISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-08关于MySQL数据库的存储引擎详细介绍
  • 存储引擎是什么?MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。 MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么性能和功能的时候为你提供最大的灵活性。选择如何存储和检索你的数据的这种灵活性是MySQL为什么如此受欢迎的主要原因。其它数据库系统(包括大多数商业选择)仅支持一种类型的数据存储。遗憾的是,其它类型的数据库解决方案采取的“一个尺码满足一切需求”的方式意味着 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-08如何使用MySQL系统的发布与安装
  • Mysql是典型的网络数据库,可以应用于Linux平台和Windows平台,并且免费。现在Mysql也提供了很好的界面进行维护工作,在Windows下使得对Mysql的维护和对MSSQLserver的维护相差不多,非数据库专业人士也可以使用。但是,MySQL在某些维护工具方面还是没有SQLServer齐全,比如SQLServer自己提供代理服务,可以进行日常的自动数据库备份,而MySQL还没有类似的服务。典型的,MySQL有二进制发布和源代码发布两种形式,我们主要使用Win2000/XP平台下的二进制MySQL发布。二进制发布有专门的安装程序,我们可以按步骤进行按照安装。安装后一般作为WinNT的服务运行。另外的维护工具还要另外安装,安装过程很简洁。很多情况,我们面对的用户对计算机的使用水平参差不齐。如果我们的产品要求用户自己安装数据库管理系统,并且要根据具体计算机性能配置数据库,相对来说就把我们的软件使用难度增加了很多。而MySQL提供不需安装的发布,我们可以把数据库系统直接打包进我们的软件包中,在安装我们软件的同时就把数据库系统进行安装,然后允许一个简单的数据库配置工具,如只让用户 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-08MySQL服务器内部安全数据目录访问
  • 作为MySQL管理员的您,在维护MySQL安装的安全性和完整性方面能够做些什么。在本文中,我们将更详细地讨论以下与安全性相关的问题: 为什么说安全性是重要的,应该警惕哪些攻击? 从服务器主机中的用户那里您将面临什么风险(内部安全性),能做什么? 从在网络上连接到服务器的客户机那里您将面临什么风险(外部安全性),能做什么? MySQL管理员有责任保护数据库内容的安全,使得记录只能由经过严格认证的那些用户访问。这包括内部安全性和外部安全性。 内部安全性关心文件系统级的问题,如保护MySQL数据目录免遭拥有运行服务器的机器账号的用户的攻击。但是,如果数据目录内容的文件许可权过分随意,有人可以将对应这些表的文件进行简单的替换的话,内部安全性就不能很好地确保适当建立对网络上客户机访问的授权表的控制。 外部安全性关心客户机从外部连接的问题,如防止MySQL服务器免遭通过网络进来的通过服务器的连接请求对数据库内容访问的攻击。要建立MySQL授权表使得它们不允许对服务器所管理的数据库的访问(除非提供了有效的名字和口令)。 本文提供了应该了解的有关问题的指导,并说明如何防止内部和外部级别中未认证的访问。 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-08预防性维护MySQL数据库服务器详解
  • 建立一个预防性维护的时间表,以协助自动检测问题,使得您可以采取措施进行修正: 1) 执行常规的数据库备份并允许更新日志。 2) 安排定期的常规表检查。通过检查表,将减少使用备份的机会。这个工作使用cron 作业(一般从运行服务器所使用的该账号的crontab 文件中调用)并且很容易实现。例如,如果您作为mysqladm 用户运行服务器,则可以从mysqladm 的crontab 文件中建立定期检查。如果您不知道如何使用c r o n,应使用下列命令查看相关的UNIX 人工页:   % man cron % man crontab 3) 在服务器启动前的系统引导期间检查数据库表。机器可能会因早期的崩溃重新启动。如果是这样的话,数据库表可能已被毁坏,应该对它进行检查。 为了运行自动的表检查,可以编写一个脚本,将目录改变为服务器数据目录并对所有数据库表运行myisamchk 和i s a m c h k。我们将在下面讨论的脚本中同时使用这两个程序。如果您只有My .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-08MySQL数据库应该如何对抗解密高手
  • 当你连接一个MySQL服务器时,你通常应该使用一个口令。口令不以明文在连接上传输。所有其它信息作为能被任何人读懂的文本被传输。如果你担心这个,你可使用压缩协议(MySQL3.22和以上版本)使事情变得更难。甚至为了使一切更安全,你应该安装SSH。用它,你能在一个MySQL服务器与一个MySQL客户之间得到一个加密的TCP/IP连接。为了使一个MySQL系统安全,强烈要求你考虑下列建议:对所有MySQL用户使用口令。记住,如果other_user没有口令,任何人能简单地用mysql -u other_user db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑 mysql_install_db脚本改变所有用户的口令,或仅仅MySQL root的口令,象这样:shell> mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD('new_password') WHERE user='root'; mysql> FLUSH PRIV .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-08利用图形界面从SQL导入导出到MySQL
  • 从sql导出到mysql的方法很多,现介绍一种无需编程,直接利用sql和mysql里的图形界面进行导入导出的简单方法。前提是已经安装了sqlserver客户端和mysql的图形界面管理工具 phpmyadmin。在控制台根目录下打开sqlserver企业管理器,新建sqlserver组,根据自己的情况进行选择;然后新建 sqlserver 注册,进行对sqlserver的连接。准备妥当后,下面就开始了:首先打开数据转换服务,新建包,打开DTS界面,在连接中选择数据源进行配置。再选择将要转换到的目的文件,这里我选的 Textfile(destination),选择好文件的存放位置之后,我们来新建一个任务。这里我们只选择转换数据任务,将带有“选择源连接”“选择目的连接”的鼠标分别选中数据源和目的之后,我们对新生成的连接进行定义,在其属性中将源,目的,转换依次定义。执行任务,提示成功。保存任务。然后在新建的任务上导出数据,有向导提示,其中一项选择“从源数据库复制表和视图”。这一步已经把数据导出到目的文件中。下一步在mys .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-08MySQL的数据类型和建库策略详解
  • 无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构、充分利用空间是十分必要的。这就要求我们对数据库系统的常用数据类型有充分的认识。下面我就将我的一点心得写出来跟大家分享。一、数字类型。数字类型按照我的分类方法分为三类:整数类、小数类和数字类。我所谓的“数字类”,就是指DECIMAL和NUMERIC,它们是同一种类型。它严格的说不是一种数字类型,因为他们实际上是将数字以字符串形式保存的;他的值的每一位(包括小数点)占一个字节的存储空间,因此这种类型耗费空间比较大。但是它的一个突出的优点是小数的位数固定,在运算中不会“失真”,所以比较适合用于“价格”、“金额”这样对精度要求不高但准确度要求非常高的字段。小数类,即浮点数类型,根据精度的不同,有FLOAT(单精度)和DOUBLE(双精度)两种。它们的优势是精确度,FLOAT可以表示绝对值非常小、小到约 1.17E-38 (0.000...0117, 小数点后面有37个零)的小数,而DOUBLE更是可以表示绝对值小到约 2.22E .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-08MySQL中文模糊检索问题的解决方法
  • 在 MySQL 下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却没有 a 字符存在。本人以前也曾遇到过类似问题,经详细阅读 MySQL 的 Manual ,发现可以有一种方法很方便的解决并得到满意的结果。例子:·希望通过“标题”对新闻库进行检索,关键字可能包含是中英文,如 下 SQL 语句:select id,title,name from achech_com.news where title like '%a%'返回的结果,某些 title 字段确定带了“a”关键字,而有些则只有中文,但也随之返回在检索结果中。解决方法,使用 BINARY 属性进行检索,如:select id,title,name from achech_com.news where binary title like '%a%'返回的结果较之前正确,但英文字母区分大小写,故有时在检索如“Achech”及 “achech”的结果是 .... [阅读全文]
  • 来源:互联网作者:
  • 2008-05-07讲解数据库调优与程序员相关的几个方面
  • 许多程序员在面试时,经常会被问到 “数据库调优”的事情,这时,许多人就会产生疑问,这不是DBA的事吗,但回答不好还是显得不够专业,笔者查找了一些相关资料,发现许多方面还真是程序员的事情,下面总结一下,希望对大家有所帮助。 本文将以影响程度排序: D1 业务逻辑 (影响最大) D2 数据设计 (表结构设计,数据建模) D3 应用程序设计 (SQL 语句的写法) D4 数据库的逻辑结构 (索引,区间,段,表空间) D5 数据库操作 (参数和配置) D6 访问路径 D7 内存分配情况 D8 I/O 和物理设计 (DBA 与业务沟通)(峰值多大,使用周期) D9 资源的征用 D10 操作系统的调节 D1-D3 影响最大但比较难修改 (事先去做) D4-D9 性能影响不是最大但经常去做的(DBA) D10 手段不是很多 从上文中,大家就可以发现,D1-D3都是和程序员相关的,这也正应了那句话:“良好的程序,业务逻辑设计是最好的调优。” .... [阅读全文]
  • 来源:作者:
共有364条记录,19页,当前第 81 2 3 4 5 6 7 8 9 10 >>
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助