MySQL datetime时间误差8个小时

数据库设计为datetime类型,如果自动获取的时间有误差8个小时的可以在mysql的配置文件[msyqld],切记在这个段下面配置
default-time-zone = ‘+8:00’

即可!

备注:ubuntu设置系统时间地区可以,执行tsselect,然后选择之后sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

再输入date看看时间是不是和北京时间一样了~~~

数据库查询报错BIGINT UNSIGNED value is out of range in

BIGINT UNSIGNED value is out of range in

今天执行两个字段相减之后得到的结果进行排序,由于字段设置时无符号整型,结果执行过后提示:BIGINT UNSIGNED value is out of range in

于是我添加了一个条件解决了这个问题(比如你select a-b as total)那么你可以添加where a>=b

Subversion 301 Moved Permanently 的解決方法

1.要保证svn和document不同一目录

官方说明:http://subversion.tigris.org/project_faq.html#301-error

 

<VirtualHost *:80>
ServerName blog.phpfs.com
DocumentRoot /var/www/html
<Directory /var/www/html>
order allow,deny
allow from all
</Directory>
<Location /test>
DAV svn
SVNPath /var/www/svn/test
Authtype Basic
AuthName ‘SVN’
Auth_MySQL on
Auth_MySQL_Authoritative on
Auth_MySQL_Host localhost
Auth_MySQL_DB svn
Auth_MySQL_User svn
Auth_MySQL_Password test
Auth_MySQL_Password_Table user
Auth_MySQL_Username_Field username
Auth_MySQL_Password_Field password
Auth_MySQL_Empty_Passwords Off
Auth_MySQL_Encrypted_Passwords on
Auth_MySQL_Encryption_Types PHP_MD5
AuthBasicAuthoritative Off
AuthUserFile /dev/null
Require valid-user
</Location>
<Location /html>
DAV svn
SVNPath /var/www/svn/html
Authtype Basic
AuthName ‘SVN’
Auth_MySQL on
Auth_MySQL_Authoritative on
Auth_MySQL_Host localhost
Auth_MySQL_DB svn
Auth_MySQL_User svn
Auth_MySQL_Password test
Auth_MySQL_Password_Table user
Auth_MySQL_Username_Field username
Auth_MySQL_Password_Field password
Auth_MySQL_Empty_Passwords Off
Auth_MySQL_Encrypted_Passwords on
Auth_MySQL_Encryption_Types PHP_MD5
AuthBasicAuthoritative Off
AuthUserFile /dev/null
Require valid-user
</Location>

</VirtualHost>

这个配置是ubuntu下的svn+mysql认证

MySQL全文索引

1.全文搜索限制条件

文搜索只适用于 MyISAM 表。
全文搜索可以同大多数多字节字符集一起使用。Unicode属于例外情况; 可使用utf8 字符集 , 而非ucs2字符集。
诸如汉语和日语这样的表意语言没有自定界符。因此, FULLTEXT分析程序不能确定在这些或其它的这类语言中词的起始和结束的位置。
其隐含操作及该问题的一些工作区在12.7节,“全文搜索功能”有详细论述。
若支持在一个单独表中使用多字符集,则所有 FULLTEXT索引中的列 必须使用同样的字符集和库。
MATCH()列列表必须同该表中一些 FULLTEXT索引定义中的列列表完全符合,除非MATCH()在IN BOOLEAN MODE。
对AGAINST() 的参数必须是一个常数字符串。

2.全文索引有三种运行模式

2.1布尔全文搜索

布尔全文搜索具有以下特点:
它们不使用 50% 域值。
它们不会按照相关性渐弱的顺序将行进行分类。
即使没有FULLTEXT,它们仍然可以工作,尽管这种方式的搜索执行的速度非常之慢。
最小单词长度全文参数和最大单词长度全文参数均适用。
停止字适用

支持操作符

2.2.全文搜索带查询扩展

2.3自然语言全文搜索(默认搜索模式)

具体资料参考:
http://dev.mysql.com/doc/refman/5.1/zh/functions.html#fulltext-search

explain

id        SELECT识别符。这是SELECT的查询序列号。

select_type

1.SIMPLE:简单的SELECT,不实用UNION或者子查询。
2.PRIMARY:最外层SELECT。
3. UNION:第二层,在SELECT之后使用了UNION。
4.DEPENDENT UNION:UNION语句中的第二个SELECT,依赖于外部子查询。
5.UNION RESULT:UNION的结果。
6.SUBQUERY:子查询中的第一个SELECT。
7.DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的查询。
8. DERIVED:导出表的SELECT(FROM子句的子查询)

table 显示该语句涉及的表

type

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL(优–>差)

possible_keys  列指出MySQL能使用哪个索引在该表中找到行

key   显示MySQL实际使用的键(索引)。如果没有选择索引,键是NULL。

key_len  显示MySQL决定使用的键长度。如果键是NULL,则长度为NULL

ref  显示使用哪个列或常数与key一起从表中选择行。

rows 显示MySQL认为它执行查询时必须检查的行数

Extra 包含MySQL解决查询的详细信息。

数据库备份脚本

#!/bin/bash
DATA_DIR=/var/lib/mysql
BACK_DIR=/backup/mysql
date=`date +%Y%m%d`
deldate=`date -d -7day +%Y%m%d`
rm -f $BACK_DIR/mysql-$deldate.tar.gz
service mysqld stop
tar -zcf $BACK_DIR/mysql-$date.tar.gz $DATA_DIR
echo $date " mysql backup success" >> /root/mysqlbackup.log
service mysqld start

 

MySQL触发器

1、触发器定义就不说了,既然能看到我这个文章就肯定明白这个定义了。用途也不多说,来看继续向下看吧!
触发器语法:
CREATE TRIGGER <触发器名称> 触发器必须有名字,最多64个字符,可能后面会附有分隔符.
{ BEFORE | AFTER } 触发器有执行的时间设置:可以设置为事件发生前或后。
{ INSERT | UPDATE | DELETE } 同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。

ON <表名称> 触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活.
注意:我们不能给同一张表的同一个事件安排两个触发器。
FOR EACH ROW 触发器的执行间隔:FOR EACH ROW子句通知触发器 每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句> 触发器包含所要触发的SQL语句:这里的语句可以是任何合法的语句, 包括复合语句,但是这里的语句受的限制和函数的一样。

Continue reading