工作日志
mysql中my.ini的优化参数
1)、back_log:
要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。
back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。 试图设定back_log高于你的操作系统的限制将是无效的。
当你观察你的主机进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待连接进程时,就要加大 back_log 的值了。默认数值是50,我把它改为500。
(2)、interactive_timeout:
服务器在关闭它前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对 mysql_real_connect()使用 CLIENT_INTERACTIVE 选项的客户。 默认数值是28800,我把它改为7200。
(3)、key_buffer_size:
索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。默认数值是8388600(8M),我的MySQL主机有2GB内存,所以我把它改为402649088(400MB)。
(4)、max_connections:
允许的同时客户的数量。增加该值增加 mysqld 要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 Too many connections 错误。 默认数值是100,我把它改为1024 。
(5)、record_buffer:
每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128K),我把它改为16773120 (16M)
(6)、sort_buffer:
每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。默认数值是2097144(2M),我把它改为 16777208 (16M)。
(7)、table_cache:
为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。MySQL对每个唯一打开的表需要2个文件描述符。默认数值是64,我把它改为512。
(8)、thread_cache_size:
可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用。我把它设置为 80。
(10)、wait_timeout:
服务器在关闭它之前在一个连接上等待行动的秒数。 默认数值是28800,我把它改为7200。
WINDOWS下mysql服务器出现大量unauthenticated user的解决办法
当我们对mysql进行show processlist查看时,出现大量unauthenticated user,并导致mysql的连接数太大。
原因不用多讲,不管连结的的方式是经过 hosts 或是 IP 的模式,他都会对 DNS 做反查。mysqld 会尝试去反查 IP -> dns ,由于反查解析过慢,无法应付快速多量的查询。这就是为什么会有这么多unauthenticated user。
解决办法:修改my.ini文件,在 [mysqld] 行下添加 –skip-name-resolve ,重新启动mysql服务
格式如下:
[mysqld]
–skip-name-resolve
注:网上答案有太多时linux下my.cnf的办法,虽然大同小异,但还是让我们这些菜鸟不敢尝试,现在公布windows下的具体格式,希望有所帮助
Flash 与深度(Z轴)有关全局函数或方法
方法
全局函数
功能描述
返回值
MovieClip.attachMovie()
无
从库中创建一个电影剪辑实例。
被创建的电影剪辑的引用
MovieClip.createEmptyMovieClip()
无
创建一个空的电影剪辑
被创建的电影剪辑的引用
MovieClip.createTextField()
无
创建一个文本框
无返回值
MovieClip.duplicateMovieClip()
duplicateMovieClip()
创建一个电影剪辑的拷贝
被创建的电影剪辑的引用
Button.getDepth()
无
返回电影剪辑、按钮、文本框的深度
深度数值
MovieClip.getInstanceAtDepth()
无
返回占据指定深度的电影剪辑
指定深度下电影剪辑的引用
MovieClip.getNextHighestDepth()
无
返回最高的可用深度
深度数值
MovieClip.removeMovieClip()
removeMovieClip()
移除动态创建的电影剪辑
无返回值
MovieClip.swapDepths()
无
交换两个电影剪辑的深度
无返回值
MovieClip.swapDepths()
无
交换两个电影剪辑的深度
无返回值
另外DepthManager是一个专门对深度进行管理的类,利用它的方法我们可以管理任何组件或影片剪辑的深度(包括 _root)分配。把它的方法一起列出,在这里要大家有个了解,现在不要求你去掌握的。
方法
描述
DepthManager.createChildAtDepth()
在指定深度处创建指定元件的子级。
DepthManager.createClassChildAtDepth()
在指定深度处创建指定元件的子级。
DepthManager.createClassObjectAtDepth()
在特殊最深剪辑中的指定深度处创建指定类的实例。
DepthManager.createObjectAtDepth()
在最深剪辑中的指定深度处创建一个对象。
DepthManager.setDepthAbove()
将深度设置到指定实例之上。
DepthManager.setDepthBelow()
将深度设置到指定实例之下。
DepthManager.setDepthTo()
将深度设置为最深剪辑中的指定实例。
FLASH对象深度(Z轴)-初探
Flash中的对象除了在平面上的坐标位置外,另外还有个立体的Z轴,那就是对象的深度。
深度具体就是些数字,比如1、2、3、100000…。Flash中用这些数字来表示当前对象的层叠位置。
控制对象的深度,一是通过拖动图层的上下关系,二是通过在同一图层上多个对象的排列层次的改变。
深度值大的靠前,深度值小的靠后。深度大的会遮盖住深度小的对象。 影片剪辑的深度值的范围是从 -16384 到 1048575。
时间轴区(-16384 到 -1)主要用于放置Flash 编辑时的对象,且对象不可用脚本移除。
动态区(0到1048575)实现运行时的动态创建、动态访问和动态移除
这个区是我们最需要的,也是我们可以通过as可以控制的。大家看这个区是从0开始的,符合我们的习惯吧,所以在这个区域可以放置那些可以动态创建和移除的对象。这里是你开发的自由区,如果在时间轴区的对象,你可以先进行交换深度到这里,然后你想怎么做都可以了,杀了它也是允许的了。
扩展区(1048576到2130690045)实现运行时的动态创建、动态访问,但不支持使用脚本移除对象。
如何在Linux下删除和重命名文件夹
通常情况下,删除文件用:rm 文件名
删除文件夹用:rmdir 文件夹名
但是rmdir不能删除非空的文件夹,那如何删除非空文件夹呢:
命令:rm -rf 非空文件夹名
建议使用前做好备份,好像此命令是不会放到回收站的,删了就再也见不着下面的文件了。
重命名文件夹
mv oldfilename newfilename
让你的PHP环境在linux下支持GD\zlib\jpeg
1、安装 zlib
tar -zxf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure –prefix=/usr/local/zlib
make
make install
2、安装 jpeg
mkdir -p /usr/local/jpeg6
mkdir -p /usr/local/jpeg6/bin
mkdir -p /usr/local/jpeg6/lib
mkdir -p /usr/local/jpeg6/include
mkdir -p /usr/local/jpeg6/man
mkdir -p /usr/local/jpeg6/man1
mkdir -p /usr/local/jpeg6/man/man1
tar -zxf jpeg-6b.tar.gz
cd jpeg-6b
./configure –prefix=/usr/local/jpeg6 –enable-shared –enable-static
make
make install
安装完成提示:
libraries have been installed in:
/usr/local/jpeg6/lib
3、安装 libpng
tar -zxf libpng-1.2.16.tar.gz
cd libpng-1.2.16
./configure –prefix=/usr/local/libpng
make
make install
4、安装 gd
tar -zxf gd-2.0.33.tar.gz
cd gd-2.0.33
mkdir -p /usr/local/gd2
./configure –prefix=/usr/local/gd2 –with-jpeg=/usr/local/jpeg6/ –with-png=/usr/local/lib/ –with-zlib=/usr/local/lib/ –with-freetype=/usr/local/freetype/
make
make install
5、安装 php5
./configure –prefix=/usr/local/php –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config [...]
如何使用PHP的error_get_last函数调试
很多php的空间都没有开启PHP调试,这就导致我们使用一些基础函数时候,没有办法知道程序倒底发生了什么事。
此时我们就可以使用error_get_last() 函数获取最后发生的错误。
该函数以数组的形式返回最后发生的错误。
返回的数组包含 4 个键和值:
[type] - 错误类型
[message] - 错误消息
[file] - 发生错误所在的文件
[line] - 发生错误所在的行
语法
error_get_last()
例子
<?php
echo $test;
print_r(error_get_last());
?>
输出:
Array
(?
[type] => 8
[message] => Undefined variable: test
[file] => C:\webfolder\test.php
[line] => 2
)
使用ntpdate调整linux系统时间和时区
调整linux其实最简单的办法就是让系统自己跟NTP服务器同步
ntpdate 210.72.145.44
129.7.1.66ntp-sop.inria.frserver 210.72.145.44(中国国家授时中心服务器IP地址)
ntp.sjtu.edu.cn (上海交通大学网络中心NTP服务器地址)
202.120.2.101 (上海交通大学网络中心NTP服务器地址)
如何使你的Apache服务器支持SSI?
Apache默认是不支持SSI的,需要我们更改httpd.conf来进行配置。我这里以windows平台的Apache 2.0.x为例,打开conf目录下的httpd.conf文件,搜索“AddType text/html .shtml”,搜索结果:
# AddType text/html .shtml
# AddOutputFilter INCLUDES .shtml
把这两行前面的#去掉。
然后搜索“Options Indexes FollowSymLinks”
在搜索到的那一行后面添加“ Includes”
即将该行改变为 Options Indexes FollowSymLinks Includes
保存httpd.conf,重起apache即可。
如何使用PHP中随机数
用rand()要初始化随机数,如下
//第一步:初始化种子
$seedarray =microtime();
$seedstr =split(” “,$seedarray,5);
$seed =$seedstr[0]*10000;
//第二步:使用种子初始化随机数发生器
srand($seed);
//第三步:生成指定范围内的随机数
$random =rand(10,40);

