首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

MySQL数据库:server has gone away问题与解决

一种可能是发送的SQL语句太长,以致超过了max_allowed_packet的大小,如果是这种原因,你只要修改my.cnf,加大max_allowed_packet的值即可。   还有一种可能是因为某些原因导致超时,比如说程序中获取数据库连接时采用了Singleton的做法,虽然多次连接数据库,但其实使用的都是同一个连接,而且程序中某两次操作数据库的间隔时间超过了wait_timeout(SHOW STATUS能看到此设置),那么就可能出现问题。最简单的处理方式就是把wait_timeout改大,当然你也可以在程序里时不时顺手 mysql_ping()一下,这样MySQL就知道它不是一个人在战斗。   解决MySQL server has gone away   1、应用程序(比如PHP)长时间...
类别:数据库 - MySQL    查看:138    更新:2014-05-19

MySQL数据库:Replace INTO的异同

REPLACE的运行与INSERT很相像。只有一点除外,如果表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。请参见13.2.4节,“INSERT语法”。   注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。该语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。   所有列的值均取自在REPLACE语句中被指定的值。所有缺失的列被设置为各自的默认值,这和INSERT一样。您不能从当前行中引用值,也不能在新行中使用值。如果您使用一个例如&ldq...
类别:数据库 - MySQL    查看:113    更新:2014-05-19

MySQL数据库死掉及拒绝服务的解决方法

从Mysql 5.x的某个版本之后,MySQL的自动关闭空闲连接的特性被修改了,假如一个连接空闲到超时时间(默认28000秒8小时),再次发起的Reconnect重新连接请求不会被接受,需要重新建立新连接,这就导致了SER的重连机制不能正常工作:SER只会在需要操作数据库时去使用同一个连接接口,断开了则发起重新连接请求,而且这个问题短期内SER也不能够解决。 下文中将具体讲述处理的方法: 1.使用Mysql 4.0或4.1版本,如果没有用到Mysql 5的一些新特性比如存储过程触发器之类。 2.定时重启Mysql服务器或Ser(由于本问题可能同样会影响到其它一些需要Mysql支持的服务器程序,所以重启Mysql服务器为好,但需要检测Mysql服务...
类别:数据库 - MySQL    查看:132    更新:2014-05-19

关于MySQL数据库安全的一些建议

当你连接一个MySQL服务器时,你通常应该使用一个口令。口令不以明文在连接上传输。所有其它信息作为能被任何人读懂的文本被传输。如果你担心这个,你可使用压缩协议(MySQL3.22和以上版本)使事情变得更难。甚至为了使一切更安全,你应该安装ssh。用它,你能在一个MySQL服务器与一个MySQL客户之间得到一个加密的tcp/ip连接。   为了使一个MySQL系统安全,强烈要求你考虑下列建议:   对所有MySQL用户使用口令。记住,如果other_user没有口令,任何人能简单地用MySQL -u other_user db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过...
类别:数据库 - MySQL    查看:125    更新:2014-05-19

Windows系统下MySQL数据库的安全权限及设置

注意:本文的内容涉及到修改NTFS磁盘权限和设置安全策略,请务必在确认您了解操作可能的后果之后再动手进行任何的修改。 文中提及的权限都是在原有权限上附加的权限。 [修改步骤] 1.创建用户 创建一个名为MySQLusr的用户,设置一个随机密码,密码的长度最好 不要少于20位。 2.设置用户的身份 将mysqlusr用户加入Guests组,并去掉其它任何的组。 3.设置磁盘权限 假设MySQL安装在如下目录中 D:hostingsystemmysql 假设MySQL的数据库存放在如下目录中 D:hostingMySQLDB 假设MySQL的服务运行者修改为mysqlusr 目录权限设置如下 D:hostingsystemmysql mysqlusr 读取和运行 列出文件夹...
类别:数据库 - MySQL    查看:129    更新:2014-05-19

ACCESS数据库向MySQL快速迁移小程序

为开发的一个信息管理系统从以前试运行的开发机器上(Windows NT + IIS4.0 + Access)迁移至一台真正的Linux服务器上(Apache1.3.12 + PHP 4.03 + MySQL 3.23.26),其中数据库中的几十个表的内容迁移,开始让我小费了一些周折,从网上也下载了一些MySqL的客户软件或是数据库管理软件,写得较好的软件均有数据迁移功能,但其迁移方式不外乎两种,一种是采用文件引入方式,此种方式在处理数据库中有和分隔符相同的字符时,会产生错误,尤其是在处理ACCESS中的Memo字段,很容易出错,最后导致导出后的数据不是多了就是少了。而另一种支持ODBC直接导入的功能较强,基本可无错误地导入各个表的内容,但很遗憾,这必须是...
类别:数据库 - MySQL    查看:104    更新:2014-05-19

如何实现MySQL数据库的备份与恢复

在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已经知道表以破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事!      备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp、cpio或tar等)。每种方法都有其优缺点:      mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数据库,也会发生同样的问题:如果数据库表在文件系统备份过程中被修...
类别:数据库 - MySQL    查看:110    更新:2014-05-19

MySQL数据库安全配置

1、前言   MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL 数据库的程序,特别是与PHP更是黄金组合,运用十分广泛。      由于MySQL是多平台的数据库,它的默认配置要考虑各种情况下都能适用,所以在我们自己的使用环境下应该进行进一步的安全加固。作为一个MySQL的系统管理员,我们有责任维护MySQL数据库系统的数据安全性和完整性。      MySQL数据库的安全配置必须从两个方面入手,系统内部安全和外部网络安全,另外我们还将简单介绍编...
类别:数据库 - MySQL    查看:80    更新:2014-05-19

MySQL数据库SQL语句优化原则

1、使用索引来更快地遍历表。 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引 下,数据在物理上随机存放在数据页上。合理的索引设计要建立在 对各种查询的分析和预测上。一般来说: a.有大量重复值、且经常有范围查询( > ,< ,> =,< =)和order by、group by发生的列,可考 虑建立群集索引; b.经常同时存取多列,且每列都含有重复值可考虑建立组合索引; c.组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。索引虽有助于提高性能但不是索引越多越好,恰好相反过多的索引会导致系统低效。用户在表中每加进一个索引,维护索引集合就要做相应的更新工作。  2、在海量查询时...
类别:数据库 - MySQL    查看:109    更新:2014-05-19

MySQL数据库之UPDATE更新语句精解

一、INSERT和REPLACE INSERT和REPLACE语句的功能都是向表中插入新的数据。这两条语句的语法类似。它们的主要区别是如何处理重复的数据。 1. INSERT的一般用法 MySQL中的INSERT语句和标准的INSERT不太一样,在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式。 INSERT INTO tablename(列名…) VALUES(列值); 而在MySQL中还有另外一种形式。 INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…; 第一种方法将列名和列值分开了,在使用时,列名必须和列值的数一致。如下面的语...
类别:数据库 - MySQL    查看:102    更新:2014-05-19

Mysql数据库字符集转换

最近discuz发布了新的版本,免费了,用的人更多了,以前使用其它论坛程序和discuz2.5/3.0的纷纷转换或升级到discuz4.0,可见discuz作为中国人开发的php论坛程序,确实是非常优秀的,在大家欣喜若狂的时候,也遇到了一些问题 看到不少用户反映转换完以后是乱码的情况,出现这种现象的主要原因是这类用户使用的都是mysql4.1以上的版本.下面作一个说明,希望出现这个问题的朋友都能耐心的把这个文档看完!!! MySQL 4.1开始,对多语言的支持有了很大变化 (这导致了问题的出现)。尽管大部分的地方 (包括个人使用和主机提供商),MySQL 3、4.0 仍然占主导地位;但 MySQL 4.1 乃至5.0是 MySQL 官方推荐的数据库,已经有主机提供商开始...
类别:数据库 - MySQL    查看:114    更新:2014-05-19

基于MySQL数据库的UTF8中文网站全文检索的实现

现在的互联网上,很多网站都提供了全文搜索功能,浏览者可以通过输入关键字或者是短语来搜索特定的资料。在PHP+MySQL构架的网站中,通常的做法是通过SELECT查询的Like语句来进行搜索,这一办法存在搜索不够精确、以及效率非常低下的缺点。比如对一个有十几万条记录数据表的TEXT字段进行LIKE操作,可能会花费上近10秒钟左右,这对网站的浏览者来说是一个非常糟糕的使用体验。如何在海量的数据中能够快速的进行全文检索呢?MySQL提供了一个全文索引功能,也就是把字段设置上FULLTEXT索引属性,然后通过SELECT的MATCH AGAINST语句进行查找。 我们开发的一个纯英文站点TouchUs - The Globa...
类别:数据库 - MySQL    查看:115    更新:2014-05-19

在数据库中使用对象的好处

我们都知道如何从Mysql获取我们需要的行(记录),读取数据,然后存取一些改动。很明显也很直接,在这个过程背后也没有什么拐弯抹角的。然而对于我们使用面对对象的程序设计(OOP)来管理我们数据库中的数据时,这个过程就需要大大改进一下了。这篇文章将对如何设计一个面对对象的方式来管理数据库的记录做一个简单的描述。你的数据当中的所有内部逻辑关系将被封装到一个非常条理的记录对象,这个对象能够提供专门(专一)的确认代码系统,转化以及数据处理。随着Zend Engine2 和PHP5的发布,PHP开发者将会拥有更强大的面对对象的工具来辅助工作,这将使这个过程(面对对象地管理数据库)更有吸引力。 以下列出了一些使用对象来描叙你...
类别:数据库 - MySQL    查看:87    更新:2014-05-19

完全优化MySQL数据库性能的八大巧方法

本文从八个方面来讲解如何全新优化MySQL数据库性能。 1、选取最适用的字段属性  字串5 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。 另外一个提高效率的方法是在可能的情况下,应该尽量把字段设置为NO...
类别:数据库 - MySQL    查看:110    更新:2014-05-19

自动备份Mysql数据库脚本(For Windows & Linux)

一、对于Windows主机  ==============  假想环境:  MySQL 安装位置:C:MySQL  论坛数据库名称为:bbs  MySQL root 密码:123456  数据库备份目的地:D:db_backup  @echo off  C:MySQLbinmysqladmin -u root --password=123456 shutdown  C:MySQLbinmysqldump --opt -u root --password=123456 bbs > D:db_backupbbs.sql  C:MySQLbinmysqld-nt  将以上代码保存为backup_db.bat  然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点...
类别:数据库 - MySQL    查看:147    更新:2014-05-19

如何不使用phpMyAdmin来转移数据库

如何不使用phpMyAdmin来转移数据库?是不是听上去不可能的。不过如果借助与其他的一些工具,这是可以实现的。现在介绍的就是如何借助与一个第三方软件:MySQL-Front,在不使用phpMyAdmin的情况下就可以转移您的数据。您只需要跟随以下三个步骤就可以完成这个转移数据的复杂任务。1。在哪里下载这个软件?请下载这个叫做MySQL-Front的软件,并进行安装。下载地址:http://zsj.cz/mysqlfront/MySQL-Front_Setup.exe  或者 http://www.mysql-front.de/pub/MySQL-Front_Setup.exe  (这个是官方站)安装过程就不详述了,另外请注意的是这个软件只能免费使用30天。不过好象有些中国网站可以下载已经被cra...
类别:数据库 - MySQL    查看:87    更新:2014-05-19