January 13, 2008
Adodb的十个实例
"本想学pear的,可是网上看到的几篇帖子对adodb的评价相当高,所以改学了这个。\nADODB的优点有这几个(网上说的,不是我说的):\n1、速度比pear快一倍;\n2、支持的数据库类型比pear多很多,甚至可以支持ACCESS;\n3、无须安装,无须服务器支持(对新手来说,这点很重要吧)\nTutorial\nExample 1: Select Statement\n任务: 连接一个名为Northwind的Access数据库, 显示 每条记录 的前两个字段.\n在这个实例里, 我们新建了一个ADOC连接(ADOConnection)对象, 并用它来连接一个数据库. 这个连接采用PConnect 方法, 这是一个持久 连接. 当我们要查询数据 库时, 我们可以随时调 用这个连接的Execute()函数. 它会返回一个ADORecordSet对象 which is actually a cursor that holds the current row in the array fields[]. 我们使用MoveNext()从一个记录转向下一个记录 .\nNB: …"
January 7, 2008
Apache基本配置指南
"1、如果找不到文件的具体位置,在Linux下可以用类似locate httpd.conf的指令来搜索文件的位置。如果搜索不到,可以先用updatedb指令更新索引数据库再用locate搜索。\n2、apachectl configtest或apachectl –t检查配置文件是否合法。apachectl一般位于安装目录的bin目录下(如:/usr/local/apache2/bin)。不要直接调用httpd。\n3、配置文件是httpd.conf;在Linux系统中,它可能存在于系统配置目录(如:/etc/httpd/conf/),也可能存在于Apache的安装目录(如:/usr/local/apache2/conf)。\n4、配置文件中,一行包含一个指令,但行尾可以用表示续行。与下一行之间不能有其它任何字符,包括空白字符。 #表示这一行是注释。\n5、指令对大小写不敏感,但是参数对大小定敏感,在Linux系统下,路径也要注意大小写。路径后不必加/。\n6、类似于表示一个配置段。大多数配置段中的指令仅针对配置段所匹配的请求有效。但诸如 、、之类,是在Apache启动时,如果条件成立才有效,并且对 …"
January 7, 2008
20种让你的Apache配置更安全的方法
"声明:关于安全的事情没有保证的或者绝对的。这些建议可以让你的服务器更安全,但不要认为遵循这些建议后你的服务器就理所当然是安全的。\n另外,在这些建议中有的建议可能会降低服务器性能或者因为你的环境引起问题。我建议所作的任何改变是否适合你的需求完全由你决定。换句话说,那是你的风险。\n一、确保你安装的是最新的补丁\n如果门是敞开的话,在窗户上加锁就毫无意义。同样道理,如果你没有打补丁,继续下面的操作就没有什么必要。\n二、隐藏Apache的版本号及其它敏感信息\n默认情况下,很多Apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的Apache模块。这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。\n这里有两条语句,你需要添加到你的httpd.conf文件中:\nServerSignature Off\nServerTokens Prod\nServerSignature出现在Apache所产生的像404页面、目录列表等页面的底部。ServerTokens目录被用来判断Apache会在Server HTTP响应包的头部填充什么信息。如果 …"
January 5, 2008
让mysql能够远程连接
"在远程连接mysql的时候发生的这个错误\nERROR 1130: Host *\\*.***.***.** is not allowed to connect to this MySQL server\n**1。 改表法 ** 一:首先确认3306远程端口开启。\n二:mysql默认不支持远连.必须设置。\n如下:\nroot权限进入\nmysql -u root -p密码\nuse mysql;\nupdate db set host = ‘%’ where user = ‘用户名’;\nFLUSH PRIVILEGES;\n退出.然后重启mysql. 上面的那个用户即可远连你的mysql了.\n记得为了安全一定要有个where条件。\n三:host:%表示你的数据库接受任何一个IP的访问,而如果明确访问方机器的IP,可以设置host:访问方IP,所以在网络物理连接的前提下,限制是否能连接到你的数据库跟你自身的IP地址无关。\n**2. 授权法。 ** 例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。\nGRANT ALL PRIVILEGES ON *.* TO …"
December 6, 2007
mysql中 is marked as crashed and last (automatic?)
"使用php+mysql时,用的数据库偶然一次出现了Table ‘./****/tbl_admin is marked as crashed and last (automatic?) repair failed],在此以前使用过一次myisamchk ,结果就出现这个错误提示了,在网上也找不了少办法,但都差不多,myisamchk 表名,可是提示tbl_admin.MYII不存在,在数据库目录里发现这个文件没有了,但同时多出一个tbl_admin.TMD文件,网上查了一下说是一个临时文件的,其实这些是本地的数据,要不要无所谓的,但这个问题我们得解决吧.后来用了以下方面的:\n先把这个文件做个备份,然后直接把.TMD扩展名改成.MYI了.然后用check table 命令结果成功了,呵呵,大家如果遇到此类问题不妨一试的.\n另个也可以用其它命令试一下:repair table 表名 和 check table 表名等其它命令的…"
November 23, 2007
windows下mysql定时自动备份
"对于linux或unix下备份mysql可以说很简介的,但在windows下备份,好像只有用windows自带的计划任务了.\n============== 假想环境: MySQL 安装位置:C:MySQL 论坛数据库名称为:bbs MySQL root 密码:123456 数据库备份目的地:D:db_backup\n程序代码\n@echo off C:MySQLbinmysqladmin -u root –password=123456 shutdown C:MySQLbinmysqldump –opt -u root –password=123456 bbs \u0026gt; D:db_backupbbs.sql C:MySQLbinmysqld-nt 将以上代码保存为backup_db.bat 然后使用Windows的“计划任务”定时执行该脚本即可。(例如:每天凌晨5点执行back_db.bat)"
November 23, 2007
使用mysqldump定时备份数据库的脚本
"每7天备份一次所有数据,每天备份binlog,也就是增量备份.\n(如果数据少,每天备份一次完整数据即可,可能没必要做增量备份)\n作者对shell脚本不太熟悉,所以很多地方写的很笨 🙂\n开启 bin log\n在mysql 4.1版本中,默认只有错误日志,没有其他日志.可以通过修改配置打开bin log.方法很多,其中一个是在/etc/my.cnf中的mysqld部分加入:\n[mysqld] log-bin\n这个日志的主要作用是增量备份或者复制(可能还有其他用途).\n如果想增量备份,必须打开这个日志.\n对于数据库操作频繁的mysql,这个日志会变得很大,而且可能会有多个.\n在数据库中flush-logs,或者使用mysqladmin,mysqldump调用flush-logs后并且使用参数delete-master-logs,这些日志文件会消失,并产生新的日志文件(开始是空的).\n所以如果从来不备份,开启日志可能没有必要.\n完整备份的同时可以调用flush-logs,增量备份之前flush-logs,以便备份最新的数据.\n完整备份脚本\n如果数据库数据比较多,我们一般是几天或者一周备份一次数 …"
November 23, 2007
mysql表索引被破坏的问题及解决
"常见错误信息: Table xxx is marked as crashed and should be repaired\n用mysql的用户,经常会遇到这样的问题,检查mysql日志,错误信息为:\nTable ‘.dedecmsv4dede_archives’ is marked as crashed and should be repaired\n提示说cms的文章表dede_archives被标记有问题,需要修复。于是赶快恢复历史数据,上网查找原因。最终将问题解决。解决方法如下:\n找到mysql的安装目录的bin/myisamchk工具,在命令行中输入:\nmyisamchk -c -r ../data/dedecmsv4/dede_archives.MYI\n然后myisamchk 工具会帮助你恢复数据表的索引。重新启动mysql,问题解决。\n问题分析:\n1、错误产生原因,有网友说是频繁查询和更新dede_archives表造成的索引错误,因为我的页面没有静态生成,而是动态页面,因此比较同意这种说法。还有说法为是MYSQL数据库因为某种原因而受到了损坏,如:数据库服务器突发性的断电、 …"
November 22, 2007
MySql创建用户及授权
"GRANT 语句的语法如下: GRANT privileges (columns) ON what TO user IDENTIFIEDBY “password” WITH GRANT OPTION\n对用户授权\nmysql\u0026gt;grant rights on database.* to user@host identified by “pass“;例1:\n增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。\ngrant select,insert,update,delete on . to test1@”%” Identified by “abc”; ON 子句中*.* 说明符的意思是“所有数据库,所有的表”例2:\n增加一个用户test2密码为abc, 让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作。\ngrant select,insert,update,delete on mydb.* to test2@localhost identified by “abc”;\n例子3 增加一个 …"
November 21, 2007
PHP5中的时间相差八小时的解决办法
"法一:\nPHP5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时\n找到php.ini中的“;date.timezone =”这行,将“;”去掉,改成“date.timezone = PRC”(PRC:People’s Republic of China 中华人民共和国),重启Apache,问题解决。\n法二:\n安装好php5后,在论坛不经意间,在论坛上看到有人说php5.1.2的时间显示整整少8个小时,\n\u0026lt;?php echo date(\u0026#34;Y-m-d H:i:s\u0026#34;); ?\u0026gt; 结果自己测试果然是相差8小时。\n后来经过在论坛上找资料,结果终于解决,在php5以及起以上的版本,要输出本地的时间(限中国),可以这么写\n\u0026lt;?php date_default_timezone_set(\u0026#39;Asia/Shanghai\u0026#39;); echo date(\u0026#39;Y-m-d H:i:s\u0026#39;); ?\u0026gt; 这样时间相差八小时的问题就解决了!!~~~"