魏长东

weichangdong

正在查看: 2015年04月日志归档(第 1 页 / 共 22 篇)

mysql高级命令

1. 查看当前MYSQL支持的存储引擎

show engines;

 

2. 查看某一用户的权限

show grants for UserName;

 

3. 如何得知当前Binary Log文件和Position

show master status;

 

4. 用什么命令切换Binary Log

flush logs;

 

»»阅读全文

linux下使用yum安装mysql

好一阵子没有玩虚拟机了,想在mysql上测试点东西,但是发现死活登陆不上。用

service mysqld start或者/etc/init.d/mysqld start命令都没法启动。以为是忘记密码。准备按照下面折腾下,结果提示那个文件不存在。

忘记密码:
          service mysqld stop(没有执行,因为根本就没起来)
 
          mysqld_safe --user=root --skip-grant-tables(提示mysqld_safe 不存在
 
          mysql -u root
 
          use mysql
 
          update user set password=password("new_pass") where user="root";
 
          flush privileges; 
那想着重装吧!

rpm -qa|grep mysql 查询,然后卸载之前的。rpm -e mysql-5.0.95-5.el5_9

»»阅读全文

mysql性能优化[转]

1 性能瓶颈定位

Show命令

我们可以通过show命令查看MySQL状态及变量,找到系统的瓶颈:

Mysql> show status ——显示状态信息(扩展show status like ‘XXX’)

Mysql> show variables ——显示系统变量(扩展show variables like ‘XXX’)

Mysql> show innodb status ——显示InnoDB存储引擎的状态

Mysql> show processlist ——查看当前SQL执行,包括执行状态、是否锁表等

Shell> mysqladmin variables -u username -p password——显示系统变量

Shell> mysqladmin extended-status -u username -p password——显示状态信息

查看状态变量及帮助:

Shell> mysqld –verbose –help [|more #逐行显示]

 

比较全的Show命令的使用可参考: http://blog.phpbean.com/a.cn/18/

慢查询日志

慢查询日志开启:

在配置文件my.cnf或my.ini中在[mysqld]一行下面加入两个配置参数

log-slow-queries=/data/mysqldata/slow-query.log           

long_query_time=2                                                                 

注:log-slow-queries参数为慢查询日志存放的位置,一般这个目录要有mysql的运行帐号的可写权限,一般都将这个目录设置为mysql的数据存放目录;

long_query_time=2中的2表示查询超过两秒才记录;

在my.cnf或者my.ini中添加log-queries-not-using-indexes参数,表示记录下没有使用索引的查询。

log-slow-queries=/data/mysqldata/slow-query.log           

long_query_time=10                                                               

log-queries-not-using-indexes                                             

慢查询日志开启方法二:

我们可以通过命令行设置变量来即时启动慢日志查询。由下图可知慢日志没有打开,slow_launch_time=# 表示如果建立线程花费了比这个值更长的时间,slow_launch_threads 计数器将增加

»»阅读全文

修复了CI框架STBLOG的一个BUG

前好一阵子,发现了我的这个博客的【日志分类】浏览有问题。每次点击之后,然后分页显示,但是点击第二页就,显示的内容就重复了,简单的说就是【http://swordman.sinaapp.com/index.php/category/php/4】的内容和【http://swordman.sinaapp.com/index.php/category/php/3】内容一样。开始以为是我加了SAE的kvdb缓存的问题,但是吧缓存给关掉了,问题依旧。困扰了我好久,今天龙颜大怒,铁腕杀之。

»»阅读全文

linux的sort用法

linux下sort排序的用法,可以支持以第几列排序,还支持分隔符来分隔出列。
老是记不住,就写在这,算是做个练习吧。

[root@swordman test]# cat  sort
1-2
3-3
6-4
8-5
6-1
1-7
1-2

要实现的目的是以第二行排序:-t是指定分隔符。

[root@swordman test]# cat  sort|sort -t'-' -k2
6-1
1-2
1-2
3-3
6-4
8-5
1-7

linux下升级mysql

上一次用yum装了mysql,虽然一切正常,但是版本很低。5.0版本,我知道这个原因是因为我的yum源比较旧。所以就决定升级mysql。

更新YUM源

rpm -Uvh http://repo.webtatic.com/yum/centos/5/latest.rpm

安装yum支持

yum install libmysqlclient15 --enablerepo=webtatic

停止MYsql服务

»»阅读全文

awk小悟

之前在awk下使用for循环的时候,老是想着for() do done,使用变量还用$,使用的都是shell的语法。今天发现awk也是一门语言,有自己的语言结构。

cat nginx-fifo-kk.log |sed -n '1,10p'|awk '{++a[$1]}END{for (wcd in a) {print wcd,"==",a[wcd]}}'

使用的时候,直接用wcd,而不是$wcd,打印数组a的数据,用a[wcd]而不是$a[wcd]。

另外关于awk的NR和NF,OFS 和ORS也有了点认识。

»»阅读全文

php几种遍历目录文件的方法

第一种用opendir,readdir,closedir系统函数遍历。应该是最常用的。

function myscandir($dir){
        $link = opendir($dir);
        $allfile =array();
        while(($value=readdir($link)) !== false){
                if ($value!='.' && $value!='..') {
                        if (is_dir($dir.'/'.$value)) {
                                $allfile[$dir]=myscandir($dir.'/'.$value);
                        }else {
                                $allfile[]=$dir.'/'.$value;
                        }
                }
        }
        closedir($link);
        return $allfile;
}
$v=myscandir('/home/test');
print_R($v);

第二种用scandir,这个需要对scandir出来的结果进行处理。

$v=scandir('/home/test');
function myscan($v)
{
        foreach ($v as $t){
                if($t=='.'||$t=='..')continue;
                if(is_dir($t)){
                        $tmp=scandir("/home/test/$t");
                        $file[$t]=myscan($tmp);
                }else{
                        $file[]=$t;
                }
        }
        return $file;
}
$v=myscan($v);
print_R($v);

第三种,用glob函数,这个和scandir差不多,也需要吧glob的结果拿来重新处理。

$wcd=glob("/home/test/*");
function myglob($wcd){
        foreach ($wcd as $v) {
                if(is_dir($v)){
                        $d=glob($v."/*");
                        $www[$v]=myglob($d);
                }else{
                        $www[]=$v;
                }
        }
        return $www;
}
$wcd=myglob($wcd);
print_R($wcd);

执行结果如下:

»»阅读全文

shell的正则

shell不常用有些基本的语法老是记不住,比如shell的if正则判断。shell的语法,感觉好不友好。空格啥的不能乱加,也不能少。

[root@swordman test]# cat sort
1-2
3-3
6-4
8-5
6-1
1-7
1-2
21-2

要求是打印出1-开头的数据。

#!/bin/bash
for wcd in `cat sort`
do
	if [[ $wcd =~ "^1-.*" ]]
	then
		echo $wcd
	fi
done

»»阅读全文

linux修改时间,mysql修改时区

修改linux时间
date -s "2015-04-08 14:45:44"

clock -w//之前没有执行这一步(写入时间到cmos),重新链接,时间又回去了

修改mysql数据库时区

show variables like '%zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+

mysql时区是跟随系统的。可通过这个命令修改。

set global time_zone='+8:00';//如果不加global,重新链接mysql时区就变回去了。