页面载入中...
首页 » Tag ‘MySQL’

Ubuntu卸载mysql、apache2后,重新安装

mysql卸载用的是 sudo aptitude purge mysql-server mysql-server-5.0

就搞定了

apache2卸载: 1、sudo apt-get remove apache2
2、sudo apt-get remove apache2.2-common
3、sudo apt-get autoremove (此命令会自动卸载PHP)

MySQL Errno 145:table xxx is marked as crashed and should be repaired

用的修复命令是:myisamchk -r bbsthreads
其中bbsthreads是我出问题的表名,当然使用这个命令还得进入 mysql你所出问题的数据库的表的存放路径,具体更详细的命令可以看帮助:myisamchk –help;
如果用以上命令你不能解决问题请看后面,后面的内容是我转载的。
我的网站出问题了,访问一看,果然全屏报错,检查mysql日志,错误信息为:

Table ‘.\dedecmsv4\dede_archives’ is marked as crashed and should be repaired

mysql unix时间戳与日期的相互转换函数

UNIX时间戳转换为日期用函数: FROM_UNIXTIME()

select FROM_UNIXTIME(1156219870);

日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP()

设置MySql的ft_min_word_len有啥好处?

从 Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4。如果是英文默认值是比较合理的,但是中文绝大部分词都是2个字符,这就导致小于4个字的词都不能被索引,全文索引功能就形同虚设了。国内的空间商大部分可能并没有注意到这个问题,没有修改 Mysql 的默认设置。

为什么要用全文索引呢?

一般的数据库搜索都是用的SQL的 like 语句,like 语句是不能利用索引的,每次查询都是从第一条遍历至最后一条,查询效率极其低下。一般数据超过10万或者在线人数过多,like查询都会导致数据库崩溃。这也就是为什么很多程序都只提供标题搜索的原因了,因为如果搜索内容,那就更慢了,几万数据就跑不动了。

Mysql 全文索引是专门为了解决模糊查询提供的,可以对整篇文章预先按照词进行索引,搜索效率高,能够支持百万级的数据检索。

如果您使用的是自己的服务器,请马上进行设置,不要浪费了这个功能。

如果您使用的是虚拟主机,请马上联系空间商修改配置。首先,Mysql 的这个默认值对于中文来说就是一个错误的设置,修改设置等于纠正了错误。其次,这个配置修改很简单,也就是几分钟的事情,而且搜索效率提高也降低了空间商数据库宕掉的几率。如果你把本篇文章发给空间商,我相信绝大部分都会愿意改的。

一般情况下, my.ini是没有默认写上ft_min_word_len这个配置的,所以还是自己写上,ft_min_word_len = 2。

MYSQL错误 1067: 进程意外终止。

在 本地计算机 无法启动 MySQL 服务。  错误 1067: 进程意外终止。
事情是这样的,我改mysql的ft_min_word_len,在my.ini中加入ft_min_word_len(加入这个有什么好处?),于是我保存后,打开cmd,输入:

net stop mysql

再输入:net start mysql(平时可能大家想问问在windows系统中如果重启mysql呢?好像一搜都发现,都是在linux环境下的重启,其实,这net stop 和net start 就是windows下的重启方式了。)

net start 显示成功启动mysql,可是mysql还是启动不了!

出现这样的问题,我只好使用“服务”中来启动“mysql”了!但是出现了这样的提示:

在 本地计算机 无法启动 MySQL 服务。  错误 1067: 进程意外终止。

这种情形,应该是刚才改动my.ini时出的问题,回过头,打开my.ini,竟然发现我们ft_min_word_len = 2后面加了一个分号,平时的编程习惯!

删除掉重来过,没出任何问题!

phpcms2007相关文章无法显示的解决之道

phpcms2008还没有完善,所以一直在使用着phpcms2007,不过使用phpcms2007的时候还是出现这样的问题。就是文章相关没有显示,添加文章的时候也已经加关键词了,可是还是没有显示出来。

看到这样的解决方式,嘿!效果还真不赖!

相关文章由原来的like搜索改为全文搜索了,

标签:

mysql持久连接原理与作用

数据库永久连接  
   
  永久的数据库连接是指在脚本结束运行时不关闭的连接。当收到一个永久连接的请求时。PHP将检查是否已经存在一个(前面已经开启的)相同的永久连接。如果存在,将直接使用这个连接;如果不存在,则建立一个新的连接。所谓“相同”的连接是指用相同的用户名和密码到相同主机的连接。    
   
  对web服务器的工作和分布负载没有完全理解的读者可能会错误地理解永久连接的作用。特别的,永久连接不会在相同的连接上提供建立“用户会话”的能力,也不提供有效建立事务的能力。实际上,从严格意义上来讲,永久连接不会提供任何非永久连接无法提供的特殊功能。    
   
  为什么?    
   
  这和web服务器工作的方式有关。web服务器可以用三种方法来利用PHP生成web页面。   
   
  第一种方法是将PHP用作一个“外壳”。以这种方法运行,PHP会为向web服务器提出的每个PHP页面请求生成并结束一个PHP解释器线程。由于该线程

如何在MYSQL中也使用INTERSECT和MINUS

让我们先来看看在Oracle中如何使用INTERSECT和MINUS:

Oracle的集合操作包括: union , intersect , minus.

[例子]

假设有两个表a,b如下:

SQL> select * from a;

      COLA
———-
1
2
3

SQL> select * from b;

      COLB
———-
3
4
5

union : 得到两个结果集的并集(不含重复值)

Error: Can’t create/write to file ‘C:\WINDOWS\TEMP\#sql_718_0.MYD(Errcode: 17)

出现这样的情况有以下的可能:

1、C:\WINDOWS\TEMP文件夹权限不够,至少也要给出USERS组的可读可写权限; (给出权限)
2、C:\WINDOWS\TEMP文件夹的磁盘满了,文件写不进去了;(清空TEMP文件夹)
3、你的服务器装了MCAFEE杀毒软件,它的访问保护禁止了TEMP文件可写;(修改访问保护设置)
4、还是MCAFEE杀毒软件的问题,解决步骤:按访问扫描属性-所有进程-检测项-扫描文件(在写入磁盘时)勾去掉,OK.
5、C:\WINDOWS\TEMP 清空这个文件夹 或是删除 #sql_718_0.MYD’

第四种的做法相对来说不够安全,可以如以下方式来操作:

我所遇到的出问题的主机是win2003sp2+php5.2.5+mysql5.0.24具体处理方法如下

在my.ini中[mysqld]里面添加一行

tmpdir=”D:/mysqltmp/temp/”

指定创建创建临时文件的目录,大量查询时会用到
重新启动mysql服务使之生效.

打开McAfee VirusScan控制台->按访问扫描程序->属性->所有进程->检测项->排除项->添加D:\mysqltmp\temp\
排除时间选择读取时写入时.

备注:由于mysql默认的临时目录是c:\windows\temp,网上流传的说法是
修改McAfee VirusScan控制台->按访问扫描程序->属性->所有进程->检测项->扫描文件去年写入文件时,
我的方法相对要安全些.

至于权限,由于mysql服务默认是系统权限,一般都是系统完全控制的,如果必要,也可给个启动用户.

标签:

PHP5+MySQL要注意哪些问题?

1、分号的例外

在MySQL中,每一行命令都是用分号(;)作为结束的,但是当一行MySQL命令被插入在PHP代码中时,最好把后面的分号省略掉,例如:

mysql_query (”INSERT INTO tablename (first_name, last_name) VALUES (”$first_name”, ”$last_name”)”);

这是因为PHP也是以分号作为一行的结束的,额外的分号有时会导致PHP 的语法分析器做出错误的分析,所以还是省略掉的好。在这种情况下,虽然省略了分号,但是 PHP 在执行 MySQL 命令时会自动加上分号。

标签: