登录 |

timeout

2011年10月30日 上午 47:09 | 作者:

Nginx

client_header_timeout = 60
client_body_timeout = 60
send_timeout = 60

fastcgi_connect_timeout = 60
fastcgi_read_timeout = 60
fastcgi_send_timeout = 60

proxy_connect_timeout = 60
proxy_read_timeout = 60
proxy_send_timeout = 60

PHP-FPM

request_terminate_timeout = 0
request_slowlog_timeout = 0

PHP
max_input_time = 60
max_execution_time = 30

使用SQL-SERVER查询Excel的数据

2011年10月28日 下午 11:54 | 作者:

这里用到了OPENROWSET,生成一个数据源:
OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’, ‘Excel 8.0;HDR=Yes;IMEX=1;Database=C:\book1.xls’, [sheet1$])
文件名:C:\book1.xls
工作表名:sheet1

[sheet1$] $是结束符,工作表名是sheet1

文件名、工作表名可以含有汉字,空格……总之就是SQL-SERVER很NB。

例如:
SELECT * FROM OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’, ‘Excel 8.0;HDR=Yes;IMEX=1;Database=C:\book1.xls’, [sheet1$])

实现Excel干不了的:JOIN联表查询!

SELECT *
FROM 
OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=C:\book1.xls', [sheet1$]) AS a 
LEFT OUTER JOIN
OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=C:\book1.xls', [sheet2$]) AS b 
ON a.ID = b.ID

MySQL运行时启用general_log

2011年10月28日 上午 02:48 | 作者:

可以运行时 启动/终止 MySQL查询log

// 1.1记录到mysql数据库mysql.general_log中,engine=CSV,文件在/var/lib/mysql/mysq/general_log.CSV
SET GLOBAL log_output=’TABLE’;
// 1.2.记录到文本文件
SET GLOBAL log_output=’FILE’;
SET GLOBAL general_log_file=’/tmp/general.log’; // 指定输出日志文件
// 2. 启动
SET GLOBAL general_log=ON;
// 3. 关闭
SET GLOBAL general_log=OFF;

// 4.1 读取mysql.general_log
SELECT * FROM mysql.general_log;.
tail -f /var/lib/mysql/mysq/general_log.CSV;
// 4.2 读取文本日志
tail -f /tmp/general.log;

PDO-MYSQL支持多语句执行

2011年10月28日 上午 37:31 | 作者:

使用mysql_query/mysqli_query都不支持分号分隔的多语句执行,会报1064错误,神奇的PDO-MySQL->exec()通过了!
对于MySQL注入来说,无疑是大开了方便之门
对于MySQL开发来说,可以批量执行SQL,不用自己foreach一条一条搞了。

示例执行SQL:
select * from test;DELETE FROM test WHERE qq = ‘1’

$link = mysql_connect('localhost','root','zzzizzz1'); 
mysql_select_db('xm_shop'); 
$result = mysql_query("select * from test;DELETE FROM test WHERE qq = '1'"); 
if(!$result){ 	
        echo mysql_errno($link) . ": " . mysql_error($link) . "\n"; 
} 
$mysqli = new mysqli("localhost", "root", "zzzizzz1", "xm_shop"); 
$result = $mysqli->query("select * from test;DELETE FROM test WHERE qq = '2'");
if (!$result) {
	echo $mysqli->errno . ": " . $mysqli->error . "\n";
}
/*
mysqli->multi_query() 支持多语句执行
*/
$result = $mysqli->multi_query("select * from test;DELETE FROM test WHERE qq = '2'");
if (!$result) {
	echo $mysqli->errno . ": " . $mysqli->error . "\n";
}

/*
PDO-MYSQL 支持多语句执行
*/
$db = new PDO('mysql:dbname=xm_shop;host=localhost', 'root', 'zzzizzz1');
$db->exec("select * from test;DELETE FROM test WHERE qq = '0'");

// stmt 设置ATTR_EMULATE_PREPARES = 0,禁用多语句查询
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0);
$sql = "select * from test;DELETE FROM test WHERE qq = '0'";
if( $stmt = $db->prepare($sql) ){
	$stmt->execute();
}

启用genneral_log,查看日志,3种扩展执行的查询并没有什么不同。
难道mysql-server的api是支持多语句执行,只有pdo扩展实现了多语句执行返回结果的处理?
1、mysql
Connect,root@localhost on
Init DB,xm_shop
Query,select * from test;DELETE FROM test WHERE qq = ‘1’
2、mysqli
Connect,root@localhost on xm_shop
Query,select * from test;DELETE FROM test WHERE qq = ‘2’
Quit,
3、PDO
Connect,root@localhost on xm_shop
Query,select * from test;DELETE FROM test WHERE qq = ‘0’
Quit,

参考文献:
http://blog.ulf-wendel.de/?p=192

Ubuntu装NV显卡

2011年10月15日 下午 03:40 | 作者:

sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current nvidia-settings