2011
Mar
30
习惯了使用navicat来操作MySQL数据库,毕竟是图形化的软件界面,比PHPMyAdmin要方便得多。
记得刚开始使用DA面板的时候,疯狂的使用navicat链接DA的数据库,但是用来没有成功过,还以为DA的数据库不能外链呢。最近发现,其实DA的数据库是可以外链的。
DA的数据库默认只让localhost链接,但是可以在后台添加链接的IP。
......2011
Jan
09
昨天系统出问题了,开机时显示系统文件丢失,郁闷,将之前备份的镜像还原后居然蓝屏了,倒霉啊。没办法,只能重装系统了。
环境装好后发现之前的数据库没有备份,于是直接把mysql/data下面的数据库直接拷贝到现在的mysql目录下面,打开navicat发现无法使用。在网上找到了一个不错的方法:
1、先在运行中输入services.msc,找到MysQL的服务,将其停止;
......2010
Dec
06
今天在做项目的时候,往数据库中输入小数,却自动变成了整数,很郁闷。看了看数据库的结构,字段类型是float,却怎么也不能写入小数,很奇怪。
后来,得到高人Google的指点,原来在设计表的时候有个“十进位”,这个就是保留小数的位数,“十进位”设置成4后,字段的小数位就都是4了。
......2010
Nov
16
在配置LAMP时经常会遇到这样那样的错误,不过大多数都可以Google得到。这几天算了折腾了,VPS配置了几天还没搞定。最成功的一次是PHP不支持MysQL,其余的都配置好了。后来又重装了系统,还在配置中。遇到的一些典型问题记录一下。
编译MysQL时出现了以下错误:
checking for tgetent in -ltermcap… no
checking for termcap functions library… configure: error: No curses/termcap library found
说明 curses/termcap 库没有安装,下载ncurses-5.6.tar.gz,安装:
......2010
Sep
10
InnoDB和MyISAM是在使用MySQL时最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级 处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行速度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持 以及外部键等高级数据库功能。
以下是一些细节和具体实现的差别:
1. InnoDB不支持FULLTEXT类型的索引。
2. InnoDB中不保存表的具体行数,也就是说,执行select count(*) from
table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含
where条件时,两种表的操作是一样的。
3. 对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。
4. DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。
5. LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用额外的InnoDB特性(例如外键)的表不适用。
另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如update table set num=1 where name like “%aaa%”任何一种表都不是万能的,只有恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。
......2010
Sep
04
为了跟上时代的步伐,我也主动换上了Windows 7。
话说上个周末安装.net环境。首先安装IIS时遇到了问题,怎么都装不好,应该是系统时间用长了,垃圾文件之类的太多。然后再往上找了一个服务器软件,来代替IIS。接着安装VS,靠,居然VS也装不上。估计得在纯净的系统上才装得上。想一想,反正是得重组系统的,干脆就装Windows 7吧。
半个多小时后,看到了Windows 7的界面,居然发现驱动都装好了。于是乎就配置PHP和.NET的环境啦。一切安装顺利,直到安装MySQL,配置MySQL的时候居然不出现配置界面,卸载了又安装,怎么都搞不好。折腾了半天,居然还是没搞定。想想可能是先安装.NET环境再安装PHP环境造成的。于是今天又重装了一次Windows 7,没想到问题依旧。终于在网上找了一篇解决方法的文章。解决方法如下:
......2010
Mar
29
初学PHP时,在新建MysQL数据库的时候,你很可能会为设置“字符集”为utf8 -- UTF-8 Unicode时,“整理”是用utf8_general_ci还是用utf8_unicode_ci而烦恼。在我初学PHP时也为此困惑过,来看看下面这篇文章吧。
当前,utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法。一些字符还是不能支持。并且,不能完全支持组合的记号。这主要影响越南和俄罗斯的一些少数民族语言,如:Udmurt 、Tatar、Bashkir和Mari。
utf8_unicode_ci的最主要的特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语和一些其它语言中‘ß’等于‘ss’。
utf8_general_ci是一个遗留的 校对规则,不支持扩展。它仅能够在字符之间进行逐个比较。这意味着utf8_general_ci校对规则进行的比较速度很快,但是与使用utf8_unicode_ci的校对规则相比,比较正确性较差)。
例如,使用utf8_general_ci和utf8_unicode_ci两种 校对规则下面的比较相等:
Ä = A
Ö = O
Ü = U
两种校对规则之间的区别是,对于utf8_general_ci下面的等式成立:
ß = s
但是,对于utf8_unicode_ci下面等式成立:
ß = ss
对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集 校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。
utf8_general_ci也适用与德语和法语,除了‘ß’等于‘s’,而不是‘ss’之外。如果你的应用能够接受这些,那么应该使用utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确。
用一句话概况上面这段话:utf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下utf8_general_ci的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据库时一般选用utf8_general_ci就可以了。
2010
Mar
19
开发目的:数据无价;
程序功能:备份MysQL数据库并发送到指定邮箱;
程序用途:在不进入空间后台的情况下备份数据库,并且直接发送到你的邮箱,方便快捷;
开发原由:由于每次备份博客数据库都要进入空间后台,感觉太麻烦了,并且有时备份时用的别人的电脑,这时还要把备份文件下载到本地后再发送到邮箱,如果一个星期像这样备份一次你也许不会觉得麻烦,但是数据无价,天有不测风云,谁知道明天网站空间会出什么事?因此最好养成每天备份的习惯,本程序也许可以给你带来方便噢;
适用范围:网站程序没有像“WordPress Database Backup”这样插件的程序,备份频率高的站长;
使用说明:你的网站服务器的PHP必须开启smtp和pop3模块;将dbbak.php里面的数据链接信息和邮箱账号修改成你自己的;如果你使用的是Linux主机,请将dbbak.php所在的文件夹权限改成777,数据库的大小不能超过你的邮箱所能发送的附件最大限制;
作者后语:如果发现问题请在此留言,我会及时修改,谢谢;
后续相关:后面还会做一个将网站整站程序和数据库一起备份并且发送到邮箱的PHP程序,敬请期待……
程序下载地址:mysqlbak.zip。
页数1/1
又梦见了,忘记真的很难。 (2月8日)
晚上和爸妈吃个饭。 (2月6日)
装修好累哟
(2月4日)
白
JankoAtWarpSpeed对...