2016年10月1日 By mikel 分类: 开发笔记

来源: 解决Godaddy部分DNS被封的2个方法_站长心得_www.knowsky.com

最近有人传言godaddy大部分dns服务器被封锁,导致国内用户无法正常登录网站。后来看到有人竟然这样写:“GoDaddy DNS再次被屏蔽,国内站长何去何从”,我真是无语了。

其实封的DNS数量很少,只有几个,也许大部分叫嚣者都是国内那些idc的托,在造势,从舆论上强迫不明真相的站长接受他们的垃圾高价主机。

解决dns被封的方法有两个:

一,更换第三方dns服务器。

国内比较著名的免费dns服务器有dnspod,百度搜索一下就知道怎么用了,我在这里不做过多描述。

二,更换godaddy的dns未被天朝屏蔽的地址。

这也是我此次揭露网络谎言的重点,方法很简单。

那么现在我就告诉大家godaddy提供的dns服务器地址,以及如何来识别可用的即未被封的dns服务器。

作为世界最大的域名注册商之一,它提供了很多的dns服务器,默认只开启了两个,当然我们可以添加很多。

1,确实地址范围在:NS1.DOMAINCONTROL.COM——NS90.DOMAINCONTROL.COM 之间。

2,选用合适的dns,这次用到的工具是批量ping工具“PingInfoView”,百度搜索下载。

3,打开PingInfoView软件,在弹出的Ping Options窗口中输入dns服务器地址,一行一个。

解决Godaddy部分DNS被封的2个方法 三联
  建议用Excel把NS1.DOMAINCONTROL.COM按序列生成1到90,复制到记事本刷掉格式,然后再复制记事本内容直接粘贴到弹出的Ping Options窗口中。

4,完成第3步后,点击ok,

  5,一般能ping通的,当然就是可以用的。如果你想更可靠的选择,可以在第三方站长工具上面用ping,返回各地的值。

下面我把dns地址直接帖上来,朋友们不用自己一个一个输入,或者用excel处理了。

NS1.DOMAINCONTROL.COMNS2.DOMAINCONTROL.COM

NS3.DOMAINCONTROL.COM

NS4.DOMAINCONTROL.COM

NS5.DOMAINCONTROL.COM

NS6.DOMAINCONTROL.COM

NS7.DOMAINCONTROL.COM

NS8.DOMAINCONTROL.COM

NS9.DOMAINCONTROL.COM

NS10.DOMAINCONTROL.COM

NS11.DOMAINCONTROL.COM

NS12.DOMAINCONTROL.COM

NS13.DOMAINCONTROL.COM

NS14.DOMAINCONTROL.COM

NS15.DOMAINCONTROL.COM

NS16.DOMAINCONTROL.COM

NS17.DOMAINCONTROL.COM

NS18.DOMAINCONTROL.COM

NS19.DOMAINCONTROL.COM

NS20.DOMAINCONTROL.COM

NS21.DOMAINCONTROL.COM

NS22.DOMAINCONTROL.COM

NS23.DOMAINCONTROL.COM

NS24.DOMAINCONTROL.COM

NS25.DOMAINCONTROL.COM

NS26.DOMAINCONTROL.COM

NS27.DOMAINCONTROL.COM

NS28.DOMAINCONTROL.COM

NS29.DOMAINCONTROL.COM

NS30.DOMAINCONTROL.COM

NS31.DOMAINCONTROL.COMNS32.DOMAINCONTROL.COM

NS33.DOMAINCONTROL.COM

NS34.DOMAINCONTROL.COM

NS35.DOMAINCONTROL.COM

NS36.DOMAINCONTROL.COM

NS37.DOMAINCONTROL.COM

NS38.DOMAINCONTROL.COM

NS39.DOMAINCONTROL.COM

NS40.DOMAINCONTROL.COM

NS41.DOMAINCONTROL.COM

NS42.DOMAINCONTROL.COM

NS43.DOMAINCONTROL.COM

NS44.DOMAINCONTROL.COM

NS45.DOMAINCONTROL.COM

NS46.DOMAINCONTROL.COM

NS47.DOMAINCONTROL.COM

NS48.DOMAINCONTROL.COM

NS49.DOMAINCONTROL.COM

NS50.DOMAINCONTROL.COM

NS51.DOMAINCONTROL.COM

NS52.DOMAINCONTROL.COM

NS53.DOMAINCONTROL.COM

NS54.DOMAINCONTROL.COM

NS55.DOMAINCONTROL.COM

NS56.DOMAINCONTROL.COM

NS57.DOMAINCONTROL.COM

NS58.DOMAINCONTROL.COM

NS59.DOMAINCONTROL.COM

NS60.DOMAINCONTROL.COM

NS61.DOMAINCONTROL.COMNS62.DOMAINCONTROL.COM

NS63.DOMAINCONTROL.COM

NS64.DOMAINCONTROL.COM

NS65.DOMAINCONTROL.COM

NS66.DOMAINCONTROL.COM

NS67.DOMAINCONTROL.COM

NS68.DOMAINCONTROL.COM

NS69.DOMAINCONTROL.COM

NS70.DOMAINCONTROL.COM

NS71.DOMAINCONTROL.COM

NS72.DOMAINCONTROL.COM

NS73.DOMAINCONTROL.COM

NS74.DOMAINCONTROL.COM

NS75.DOMAINCONTROL.COM

NS76.DOMAINCONTROL.COM

NS77.DOMAINCONTROL.COM

NS78.DOMAINCONTROL.COM

NS79.DOMAINCONTROL.COM

NS80.DOMAINCONTROL.COM

NS81.DOMAINCONTROL.COM

NS82.DOMAINCONTROL.COM

NS83.DOMAINCONTROL.COM

NS84.DOMAINCONTROL.COM

NS85.DOMAINCONTROL.COM

NS86.DOMAINCONTROL.COM

NS87.DOMAINCONTROL.COM

NS88.DOMAINCONTROL.COM

NS89.DOMAINCONTROL.COM

NS90.DOMAINCONTROL.COM

结果证明九十多个dns,也就有十多个不能用,怎么能说是大规模屏蔽呢。

怎么样更换godaddy的dns服务器地址,会者跳过,不会的请点击:http://www.icdiary.com/html/1989.html

2016年9月29日 By mikel 分类: Debug, 开发笔记, 数据库

lumanger 执行mySQL命令
需要在命令行执行/usr/local/mySQL/bin/mySQL -u root -p 即可
不能直接输入mysql -u root -p
因为没有做链接

lumanger 执行mysql命令已关闭评论
2016年9月29日 By mikel 分类: 开发笔记

来源: MySQL 事件调度器创建 – 博客频道 – CSDN.NET

一、基本概念

事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里。

二、使用范围

对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理。

三、使用权限

单独使用event调用SQL语句时,查看和创建需要用户具有event权限,调用该SQL语句时,需要用户具有执行该SQL的权限。Event权限的设置保存在mysql.user表和mysql.db表的Event_priv字段中。

当event和procedure配合使用的时候,查看和创建存储过程需要用户具有create routine权限,调用存储过程执行时需要使用excute权限,存储过程调用具体的SQL语句时,需要用户具有执行该SQL的权限。

查看EVENT的方法 :

SHOW EVENTS;

四、基本语法

要使event起作用,MySQL的常量GLOBAL event_scheduler必须为on或者是1;

— 查看是否开启定时器

SHOW VARIABLES LIKE ‘event_scheduler’;

 

— 开启定时器 0:off     1:on

SET GLOBAL event_scheduler = 1;

当你设定的时间计划为 0 或者 OFF 时, 即关闭时间进程,不会有新的事件执行,但现有的正在运行的计划事件会执行到完毕

对于线上环境来说,使用EVENT时,   注意 — 要从主库上开启定时器,从主库上关闭数据库,event触发所有操作均会记录binlog进行主从同步,从库上开启定时器很可能造成卡库。切换主库后之后记得将新主库上的定时器打开。

 

创建事件

CREATE EVENTS 的语法如下:

CREATE EVENT
[IF NOT EXISTS] ———————————————*标注1
event_name —————————————————–*标注2

ON SCHEDULE schedule ————————————*标注3
[ON COMPLETION [NOT] PRESERVE] —————–*标注4
[ENABLE | DISABLE] —————————————-*标注5
[COMMENT ‘comment’] ————————————–*标注6
DO sql_statement ———————————————–*标注7

 

说明:

标注1:[IF NOT EXISTS]

使用IF NOT EXISTS,只有在同名event不存在时才创建,否则忽略。建议不使用以保证EVENT创建成功。

标注2:event_name

名字最长64个字节,名字必须是当前数据库中唯一的 , 同一数据库中不存在同名的EVENT

使用event常见的工作是创建表、插入数据、删除数据、清空表、删除表。

为了避免命名规范带来的不便,最好让事件名称具有描述整个事件的能力。例如:动作名称_(INTO/FROM_)表名_TIME

1.     每月创建(清空/删除)test表:
create(truncate/drop)_table_test_month;
2.     每天从test表插入(删除)数据:
insert(delete)_into(from)_test_day;

标注3:ON SCHEDULE

ON SCHEDULE 计划任务,有两种设定计划任务的方式:
1. AT 时间戳,用来完成单次的计划任务。

 

2. EVERY 时间(单位)的数量时间单位[STARTS 时间戳] [ENDS时间戳],用来完成重复的计划任务。

在两种计划任务中,时间戳可以是任意的TIMESTAMP 和DATETIME 数据类型, 时间戳需要大于当前时间。

在重复的计划任务中,时间(单位)的数量可以是任意非空(Not Null)的整数式,时间单位是关键词:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND。

标注4: [ON COMPLETION [NOT] PRESERVE]

ON COMPLETION参数表示”当这个事件不会再发生的时候”,即当单次计划任务执行完毕后或当重复性的计划任务执行到了ENDS阶段。而PRESERVE的作用是使事件在执行完毕后不会被Drop掉,建议使用该参数,以便于查看EVENT具体信息。

标注5:[ENABLE | DISABLE]

参数Enable和Disable表示设定事件的状态。Enable表示系统将执行这个事件。Disable表示系统不执行该事件。

可以用如下命令关闭或开启事件:

ALTER EVENT event_name  ENABLE/DISABLE

标注6:[COMMENT ‘comment’]

注释会出现在元数据中,它存储在information_schema表的COMMENT列,最大长度为64个字节。’comment’表示将注释内容放在单引号之间,建议使用注释以表达更全面的信息。

标注 7: DO sql_statement

DO sql_statement字段表示该event需要执行的SQL语句或存储过程。这里的SQL语句可以是复合语句

五、实例操作

以最高权限执行

下载工具 : http://download.csdn.net/detail/only_lamp/8967349

操作时需要使用数据库连接工具Navicat 10.0.10

1. 连接数据库 -> 点击查询当前数据库是否开启定时任务

2. 如果当前数据库定时任务状态为关闭状态 ,     点击查询->执行开启代码

3 .  在开启数据库之后  开始建立储存过程

点击Navicat事件  -> 新建事件

计划任务,每隔一段时间就有固定需求的操作,如创建表,删除数据等操作。

AT 时间戳,用来完成单次的计划任务。

EVERY 时间(单位)的数量时间单位[STARTS 时间戳] [ENDS时间戳],用来完成重复的计划任务。时间单位较多,按需选择。

在两种计划任务中,时间戳可以是任意的TIMESTAMP 和DATETIME 数据类型,时间戳需要大于当前时间。

最后Ctrl+S保存

修改设置的任务 alter event语法 :

ALTER

[DEFINER = { user | CURRENT_USER }]

EVENT event_name

[ON SCHEDULE schedule]

[ON COMPLETION [NOT] PRESERVE]

[RENAME TO new_event_name]

[ENABLE | DISABLE | DISABLE ON SLAVE]

[COMMENT ‘comment’]

[DO event_body]

 

alter event语句可以修改事件的一个或多个属性,DEFINER/ON SCHEDULE/ON COMPLETION PRESERVER/ENABLE/COMMENT/DO子句的语法与create event语句完全相同,唯一不同的是可以对事件重命名,使用RENAME TO子句

ALTER EVENT OLDDB.MYEVENT RENAME TO NEWDB.MYEVENT;   // 修改事件名

 

 

在事件到期后再次作出查询 ,查看 任务是否依旧执行 存在

删除事件EVENT使用DROP EVENT语句来删除已经创建的事件,语法如下:
DROP EVENT
[IF EXISTS]
event_name

 

转载注明http://blog.csdn.net/only_lamp

MySQL 事件调度器创建 – 博客频道 – CSDN.NET已关闭评论
2016年9月29日 By mikel 分类: 数据库

来源: MySQL 事件调度器 — phpmyadmin和命令行下操作 – 博客频道 – CSDN.NET

前几天给大家发了一篇MySQL事件调度器, 是通过Navicat来实现的 也需有很多人不习惯 或者没有用过这个软件 今天为大家献上使用命令行 和PHPmyadmin 来实现的方法,希望可以帮到大家吧 下面进入整体 !!

定时器的基本使用和开启方法就不多说了,在这里先讲PHPmyadmin下的 ,其实这两个下的使用方法都相同.

第一步还是去查询数据库有没有开启EVENT  方法大家可以去我的上次博客去看

http://blog.csdn.net/only_lamp/article/details/47317235

第二步来执行我们任务定时

将上边的执行就OK了  是不是很简单啊 大家试试吧

在命令行下执行时也相同  大家只需要按上边的执行就OK了  ,有什么不明白的可以私信我!!!

MySQL 事件调度器 — phpmyadmin和命令行下操作 – 博客频道 – CSDN.NET已关闭评论
2016年9月28日 By mikel 分类: 开发笔记

来源: mysql中data目录mysql-bin.000001文件清理方法 | 无限星辰技术博-专业互联网技术支持

在MYSQL安装目录写,data目录存放着所有数据库的文件,在这个目录下有一些mySQL-bin.000001,mySQL-bin.000002,mysql-bin.000003类似的文件占用很大的空间,这些文件都是数据库的操作日志文件,可以清除掉。清除方法:
在cmd下进到mysql下的bin目录下,输入mysql -u root -p然后输入密码,成功进去后输入 reset master。
mysql> reset master;
Query OK, 0 rows affected, 1 warning (0.20 sec)
这样就删除了日志文件,如果你不希望生成这些日志文件可以这样操作:
打开mysql目录中的my.ini,找到log-bin=mysql-bin然后注释掉就可以了。
#log-bin=mysql-bin
(在修改数据库配置文件时候最好暂时关闭MYSQL数据库)

mysql中data目录mysql-bin.000001文件清理方法 | 无限星辰技术博-专业互联网技术支持已关闭评论
2016年9月28日 By mikel 分类: Debug

linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结

Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进
行压缩了,所以首先就来讲讲tar命令的基本用法:
tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面
来举例说明一下:
# tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包
,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的
意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思
以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压
文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压
缩程序,比如调用gzip、bzip2等。
1) tar调用gzip
  gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip
相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下

# tar -czf all.tar.gz *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个
gzip压缩过的包,包名为all.tar.gz
# tar -xzf all.tar.gz
这条命令是将上面产生的包解开。
2) tar调用bzip2
  bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。
与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例
说明一下:
# tar -cjf all.tar.bz2 *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个
bzip2压缩过的包,包名为all.tar.bz2
# tar -xjf all.tar.bz2
这条命令是将上面产生的包解开。
3)tar调用compress
  compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人
多。.Z结尾的文件就是bzip2压缩的结果。与 compress相对的解压程序是uncompress
。tar中使用-Z这个参数来调用compress。下面来举例说明一下:
# tar -cZf all.tar.Z *.jpg
这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成
一个uncompress压缩过的包,包名为all.tar.Z
# tar -xZf all.tar.Z
这条命令是将上面产生的包解开

有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文
件作一个小结

1)对于.tar结尾的文件
tar -xf all.tar
2)对于.gz结尾的文件
gzip -d all.gz
gunzip all.gz
3)对于.tgz或.tar.gz结尾的文件
tar -xzf all.tar.gz
tar -xzf all.tgz
4)对于.bz2结尾的文件
bzip2 -d all.bz2
bunzip2 all.bz2
5)对于tar.bz2结尾的文件
tar -xjf all.tar.bz2
6)对于.Z结尾的文件
uncompress all.Z
7)对于.tar.Z结尾的文件
tar -xZf all.tar.z

另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它
们:
1)对于.zip
  linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参
数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
# zip all.zip *.jpg
这条命令是将所有.jpg的文件压缩成一个zip包
# unzip all.zip
这条命令是将all.zip中的所有文件解压出来
2)对于.rar
要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux 不是免费的;可从http://www.rarsoft.com/download.htm下载RARfor Linux 3.2.
0,然后安装:
# tar -xzpvf rarlinux-3.2.0.tar.gz
# cd rar
# make
这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar 是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:

# rar a all *.jpg
这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar
扩展名将自动附加到包名后。
# unrar e all.rar
这条命令是将all.rar中的所有文件解压出来
到此为至,我们已经介绍过linux下的tar、gzip、gunzip、bzip2、bunzip2、compress 、 uncompress、 zip、unzip、rar、unrar等程式,你应该已经能够使用它们对.tar 、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、. Z、.tar.Z、.zip、.rar这10种压缩文
件进行解压了,以后应该不需要为下载了一个软件而不知道如何在Linux下解开而烦恼了。而且以上方法对于Unix也基本有效。
本文介绍了linux下的压缩程式tar、gzip、gunzip、bzip2、bunzip2、compress 、uncompress、 zip、 unzip、rar、unrar等程式,以及如何使用它们对.tar、.gz 、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、. tar.Z、.zip、.rar这10种压缩文件进行
操作。

以下补充

tar

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
# tar -cf all.tar *.jpg这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
# tar -rf all.tar *.gif
这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif
这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
# tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思
压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux
zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip

总结
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压

linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结已关闭评论
2016年9月28日 By mikel 分类: 数据库

来源: 每天一个linux命令(5):rm 命令 – peida – 博客园

昨天学习了创建文件和目录的命令mkdir ,今天学习一下linux中删除文件和目录的命令: rm命令。rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。

rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。

1.命令格式:

rm [选项] 文件…

2.命令功能:

删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

3.命令参数:

-f, –force    忽略不存在的文件,从不给出提示。

-i, –interactive 进行交互式删除

-r, -R, –recursive   指示rm将参数中列出的全部目录和子目录均递归地删除。

-v, –verbose    详细显示进行的步骤

–help     显示此帮助信息并退出

–version  输出版本信息并退出

4.命令实例:

实例一:删除文件file,系统会先询问是否删除。

命令:

rm 文件名

输出:

[root@localhost test1]# ll

总计 4

-rw-r–r– 1 root root 56 10-26 14:31 log.log

root@localhost test1]# rm log.log

rm:是否删除 一般文件 “log.log”? y

root@localhost test1]# ll

总计 0[root@localhost test1]#

说明:

输入rm log.log命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则数据n。

实例二:强行删除file,系统不再提示。

命令:

rm -f log1.log

输出:

[root@localhost test1]# ll

总计 4

-rw-r–r– 1 root root 23 10-26 14:40 log1.log

[root@localhost test1]# rm -f log1.log

[root@localhost test1]# ll

总计 0[root@localhost test1]#

实例三:删除任何.log文件;删除前逐一询问确认

命令:

rm -i *.log

输出:

[root@localhost test1]# ll

总计 8

-rw-r–r– 1 root root 11 10-26 14:45 log1.log

-rw-r–r– 1 root root 24 10-26 14:45 log2.log

[root@localhost test1]# rm -i *.log

rm:是否删除 一般文件 “log1.log”? y

rm:是否删除 一般文件 “log2.log”? y

[root@localhost test1]# ll

总计 0[root@localhost test1]#

实例四:将 test1子目录及子目录中所有档案删除

命令:

rm -r test1

输出:

[root@localhost test]# ll

总计 24drwxr-xr-x 7 root root 4096 10-25 18:07 scf

drwxr-xr-x 2 root root 4096 10-26 14:51 test1

drwxr-xr-x 3 root root 4096 10-25 17:44 test2

drwxrwxrwx 2 root root 4096 10-25 17:46 test3

drwxr-xr-x 2 root root 4096 10-25 17:56 test4

drwxr-xr-x 3 root root 4096 10-25 17:56 test5

[root@localhost test]# rm -r test1

rm:是否进入目录 “test1”? y

rm:是否删除 一般文件 “test1/log3.log”? y

rm:是否删除 目录 “test1”? y

[root@localhost test]# ll

总计 20drwxr-xr-x 7 root root 4096 10-25 18:07 scf

drwxr-xr-x 3 root root 4096 10-25 17:44 test2

drwxrwxrwx 2 root root 4096 10-25 17:46 test3

drwxr-xr-x 2 root root 4096 10-25 17:56 test4

drwxr-xr-x 3 root root 4096 10-25 17:56 test5

[root@localhost test]#

实例五:rm -rf test2命令会将 test2 子目录及子目录中所有档案删除,并且不用一一确认

命令:

rm -rf  test2

输出:

[root@localhost test]# rm -rf test2

[root@localhost test]# ll

总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf

drwxrwxrwx 2 root root 4096 10-25 17:46 test3

drwxr-xr-x 2 root root 4096 10-25 17:56 test4

drwxr-xr-x 3 root root 4096 10-25 17:56 test5

[root@localhost test]#

实例六:删除以 -f 开头的文件

命令:

rm — -f

输出:

[root@localhost test]# touch — -f

[root@localhost test]# ls — -f

-f[root@localhost test]# rm — -f

rm:是否删除 一般空文件 “-f”? y

[root@localhost test]# ls — -f

ls: -f: 没有那个文件或目录

[root@localhost test]#

也可以使用下面的操作步骤:

[root@localhost test]# touch ./-f

[root@localhost test]# ls ./-f

./-f[root@localhost test]# rm ./-f

rm:是否删除 一般空文件 “./-f”? y

[root@localhost test]#

实例七:自定义回收站功能

命令:

myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv “$@” $D && echo “moved to $D ok”; }

输出:

[root@localhost test]# myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D;  mv “$@” $D && echo “moved to $D ok”; }

[root@localhost test]# alias rm=’myrm’

[root@localhost test]# touch 1.log 2.log 3.log

[root@localhost test]# ll

总计 16

-rw-r–r– 1 root root    0 10-26 15:08 1.log

-rw-r–r– 1 root root    0 10-26 15:08 2.log

-rw-r–r– 1 root root    0 10-26 15:08 3.log

drwxr-xr-x 7 root root 4096 10-25 18:07 scf

drwxrwxrwx 2 root root 4096 10-25 17:46 test3

drwxr-xr-x 2 root root 4096 10-25 17:56 test4

drwxr-xr-x 3 root root 4096 10-25 17:56 test5

[root@localhost test]# rm [123].log

moved to /tmp/20121026150901 ok

[root@localhost test]# ll

总计 16drwxr-xr-x 7 root root 4096 10-25 18:07 scf

drwxrwxrwx 2 root root 4096 10-25 17:46 test3

drwxr-xr-x 2 root root 4096 10-25 17:56 test4

drwxr-xr-x 3 root root 4096 10-25 17:56 test5

[root@localhost test]# ls /tmp/20121026150901/

1.log  2.log  3.log

[root@localhost test]#

说明

上面的操作过程模拟了回收站的效果,即删除文件的时候只是把文件放到一个临时目录中,这样在需要的时候还可以恢复过来。

参考资料:

http://codingstandards.iteye.com/blog/983531

每天一个linux命令(5):rm 命令 – peida – 博客园已关闭评论
2016年9月27日 By mikel 分类: 开发笔记, 数据库

codetime为时间格式为Unix时间戳

基本原理就是当前时间减去数据库时间计算秒数,然后

SELECT recordcode,codetime,(300-(UNIX_TIMESTAMP(NOW())-codetime)) as opentime FROM `lotteryrecord` WHERE `codestatus` =1

Mysql 计算时间间隔分钟已关闭评论
2016年9月27日 By mikel 分类: 数据库

来源: mysql查看所有存储过程,函数,视图,触发器,表 – luohai859的专栏 – 博客频道 – CSDN.NET

查询数据库中的存储过程和函数

方法一:

select `name` from mySQL.proc where db = ‘your_db_name’ and `type` = ‘PROCEDURE’   //存储过程
select `name` from mySQL.proc where db = ‘your_db_name’ and `type` = ‘FUNCTION’   //函数

方法二:

show procedure status; //存储过程

show function status;     //函数

查看存储过程或函数的创建代码

show create procedure proc_name;
show create function func_name;

查看视图

SELECT * from information_schema.VIEWS   //视图

SELECT * from information_schema.TABLES   //表

查看触发器

方法一:
语法:SHOW TRIGGERS [FROM db_name] [LIKE expr]
实例:SHOW TRIGGERS\G     //触发器

方法二:
对INFORMATION_SCHEMA数据库中的TRIGGERS表查询
mySQL>SELECT * FROM triggers T WHERE trigger_name=”mytrigger” \G

mysql查看所有存储过程,函数,视图,触发器,表 – luohai859的专栏 – 博客频道 – CSDN.NET已关闭评论
2016年9月27日 By mikel 分类: 数据库

一、基本概念
mySQL5.1版本开始引进event概念。event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发。通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程。

二、适用范围
对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理。

例如:使用event在每月的1日凌晨1点自动创建下个月需要使用的三张表。

三、使用权限
单独使用event调用SQL语句时,查看和创建需要用户具有event权限,调用该SQL语句时,需要用户具有执行该SQL的权限。Event权限的设置保存在mysql.user表和mysql.db表的Event_priv字段中。

当event和procedure配合使用的时候,查看和创建存储过程需要用户具有create routine权限,调用存储过程执行时需要使用excute权限,存储过程调用具体的SQL语句时,需要用户具有执行该SQL的权限。
查看EVENT命令有如下几种:

(1)查询mysql.event表;

(2)通过SHOW EVENTS命令;

(3)通过SHOW FULL EVENTS命令;

(4)通过查询information_schema.events表

(5)SHOW CREATE EVENT。

总之,event的使用频率较低建议使用root用户进行创建和维护。

四、基本语法

4.1 开启定时器
要使event起作用,MySQL的常量GLOBAL event_scheduler必须为on或者是1。
— 查看是否开启定时器

复制代码 代码如下:
SHOW VARIABLES LIKE ‘event_scheduler’;

— 开启定时器 0:off 1:on

复制代码 代码如下:
SET GLOBAL event_scheduler = 1;

当你设定事件计划为0 或OFF,即关闭事件计划进程的时候,不会有新的事件执行,但现有的正在运行的事件会执行到完毕

对于我们线上环境来说,使用event时,注意在主库上开启定时器,从库上关闭定时器,event触发所有操作均会记录binlog进行主从同步,从库上开启定时器很可能造成卡库。切换主库后之后记得将新主库上的定时器打开。
请特别注意!

4.2 创建事件
CREATE EVENT 的语法如下:
CREATE EVENT
[IF NOT EXISTS] ———————————————*标注1
event_name —————————————————–*标注2

ON SCHEDULE schedule ————————————*标注3
[ON COMPLETION [NOT] PRESERVE] —————–*标注4
[ENABLE | DISABLE] —————————————-*标注5
[COMMENT ‘comment’] ————————————–*标注6
DO sql_statement ———————————————–*标注7

说明:

标注1:[IF NOT EXISTS]

使用IF NOT EXISTS,只有在同名event不存在时才创建,否则忽略。建议不使用以保证event创建成功。

标注2:event_name

名称最大长度可以是64个字节。名字必须是当前Dateabase中唯一的,同一个数据库不能有同名的event。

使用event常见的工作是创建表、插入数据、删除数据、清空表、删除表。

为了避免命名规范带来的不便,最好让事件名称具有描述整个事件的能力。建议命名规则如下为:动作名称_(INTO/FROM_)表名_TIME,例如:
1.     每月创建(清空/删除)fans表:
create(truncate/drop)_table_fans_month;
2.     每天从fans表插入(删除)数据:
insert(delete)_into(from)_fans_day;
标注3:ON SCHEDULE

ON SCHEDULE 计划任务,有两种设定计划任务的方式:

1. AT 时间戳,用来完成单次的计划任务。

2. EVERY 时间(单位)的数量时间单位[STARTS 时间戳] [ENDS时间戳],用来完成重复的计划任务。

在两种计划任务中,时间戳可以是任意的TIMESTAMP 和DATETIME 数据类型,时间戳需要大于当前时间。

在重复的计划任务中,时间(单位)的数量可以是任意非空(Not Null)的整数式,时间单位是关键词:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND。

提示: 其他的时间单位也是合法的如:QUARTER, WEEK, YEAR_MONTH,DAY_HOUR,DAY_MINUTE,DAY_SECOND,HOUR_MINUTE,HOUR_SECOND, MINUTE_SECOND,不建议使用这些不标准的时间单位。

标注4: [ON COMPLETION [NOT] PRESERVE]

ON COMPLETION参数表示”当这个事件不会再发生的时候”,即当单次计划任务执行完毕后或当重复性的计划任务执行到了ENDS阶段。而PRESERVE的作用是使事件在执行完毕后不会被Drop掉,建议使用该参数,以便于查看EVENT具体信息。

标注5:[ENABLE | DISABLE]
参数Enable和Disable表示设定事件的状态。Enable表示系统将执行这个事件。Disable表示系统不执行该事件。

可以用如下命令关闭或开启事件:

ALTER EVENT event_name  ENABLE/DISABLE
标注6:[COMMENT ‘comment’]

注释会出现在元数据中,它存储在information_schema表的COMMENT列,最大长度为64个字节。’comment’表示将注释内容放在单引号之间,建议使用注释以表达更全面的信息。

标注 7: DO sql_statement

DO sql_statement字段表示该event需要执行的SQL语句或存储过程。这里的SQL语句可以是复合语句,例如:
BEGIN
CREATE TABLE test1;//创建表(需要测试一下)
DROP TABLE test2;//删除表
CALL proc_test1();//调用存储过程
END

使用BEGIN和END标识符将复合SQL语句按照执行顺序放在之间。当然SQL语句是有限制的,对它的限制跟函数Function和触发器Trigger 中对SQL语句的限制是一样的,如果你在函数Function 和触发器Trigger 中不能使用某些SQL,同样的在EVENT中也不能使用。明确的来说有下面几个:

LOCK TABLES
UNLOCK TABLES
CREATE EVENT
ALTER EVENT
LOAD DATA

4.3  执行逻辑
For (已建立事件each event that has been created)
If (事件的状态非DISABLE)
And (当前时间在ENDS时间之前)
And (当前时间在STARTS时间之后)
And (在上次执行后经过的时间)
And (没有被执行)
Then:
建立一个新的线程
传递事件的SQL语句给新的线程
(该线程在执行完毕后会自动关闭)

4.4 修改事件
使用ALTER EVENT 来修改事件,具体的ALTER语法如下,与创建事件的语法类似:
ALTER EVENT
event_name

ON SCHEDULE schedule
[RENAME TO new_event_name]
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT ‘comment’]
DO sql_statement

4.5 删除事件
EVENT使用DROP EVENT语句来删除已经创建的事件,语法如下:

DROP EVENT
[IF EXISTS]
event_name

但当一个事件正在运行中时,删除该事件不会导致事件停止,事件会执行到完毕为止。使用DROP USER和DROP DATABASE 语句同时会将包含其中的事件删除。

五、常用实例
每隔一秒自动调用e_test()存储过程

复制代码 代码如下:
CREATE EVENT IF NOT EXISTS e_test
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE
DO CALL e_test();

每个月的一号凌晨1 点执行STAT()存储过程:

复制代码 代码如下:
CREATE  EVENT  NOT EXISTS  STAT
ON  SCHEDULE  EVERY  1  MONTH  STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)
ON  COMPLETION  PRESERVE  ENABLE
DO
BEGIN
CALL STAT();
END
mysql中event的用法详解已关闭评论
备案信息冀ICP 0007948