PHP 和 Java 比最大的优势是什么?
Php/Js/Shell/Go jackxiang 2012-7-1 14:59
这一篇文章还以为是一个真正的比较,后来加了一个Url:Swoole-真正的PHP Web开发框架,大概了解了一下,感觉还是不错的,这个框架的思想以实用,借鉴,不落后,不争先,集成事件,服务等。。。阅读全文
PHP Dio扩展新函数dio_fdopen参数返回--bad file descriptor的分析:
昨天准备做一个程序,PHP的串口扩展程序,用来做串口打开的,于是用dio_fdopen来新建一个文件:
每个打开的文件都会被分配一个文件描述符.[1]stdin, stdout, 和stderr的文件描述符分别是0, 1, 和 2. 对于正在打开的额外文件, 保留了描述符3到9. 在某些时候将这些格外的文件描述符分配给stdin, stdout, 或者是stderr作为临时的副本链接是非常有用的.
返回:Bad file descriptor。
查看PHP扩展的源代码,如下:
PHP的最新扩展:dio_open代码片段摘录。
返回错误在这一块,如下:
这儿涉及到fcntl函数的调用返回有问题,查其相关参数:
F_GETFL : 用来读取open系统调用第二个参数设置的标志,即文件的打开方式(O_RDONLY,O_WRONLY,O_APPEND等),它不需要第三个参数。实际上上这时函数返回的是file结构中的flags域。
其相当于只是创建了一个文件,并未确定这个文件的状态。在C里会补上一个 O_RDWR,
fd = open ("hole", O_CREAT, S_IRWXU | S_IRWXG) ;
变为:
fd = open ("hole", O_CREAT | O_RDWR, S_IRWXU | S_IRWXG) ;
fcntl这个系统调用功能比较多,可以执行多种操作,其内核函数在fs/fcntl.c中定义:
1.入口参数:
(1)fd:欲访问文件的文件描述符
(2)cmd:要执行的操作的命令,这个参数定义了10个标志,下面介绍其中的5个,
F_DUPFD、F_GETFD、F_SETFD、F_GETFL和 F_SETFL
(3)arg:可选,主要根据第二个命令来决定是否需要
2.出口参数:根据第二个参数的不同,这个返回值也不一样。
3.函数功能:
第二个参数是F_DUPFD,则进行复制文件描述符的操作。它需要用到第三个参数arg,这时arg是一个文件描述符,fcntl(fd,F_DUPFD,arg)在files_struct结构中从指定的arg开始搜索空闲的文件描述符,找到第一个后,将fd的内容复制进来,然后将新找到的文件描述符返回。
第二个参数是F_GETFD,则返回files_struct结构中close_on_exec的值。无需第三个参数。
第二个参数是F_SETFD,则需要第三个参数,若arg最低位为1,则对close_on_exec置位,否则清除close_on_exec。
第二个参数是F_GETFL,则用来读取open系统调用第二个参数设置的标志,即文件的打开方式(O_RDONLY,O_WRONLY,O_APPEND等),它不需要第三个参数。实际上上这时函数返回的是file结构中的flags域。
第二个参数是F_SETFL,则用来对open系统调用第二个参数设置的标志进行改变,但是它只能对O_APPEND和O_NONBLOCK标志进行改变,这时需要第三个参数arg,用来确定如何改变。函数返回0表示操作成功,否则返回-1,并置一个错
这个文件句柄的操作感觉还大有学问在里面,有什么同步,异步等等。
参看:http://blog.csdn.net/wallwind/article/details/7281700
回家了解:
昨天准备做一个程序,PHP的串口扩展程序,用来做串口打开的,于是用dio_fdopen来新建一个文件:
每个打开的文件都会被分配一个文件描述符.[1]stdin, stdout, 和stderr的文件描述符分别是0, 1, 和 2. 对于正在打开的额外文件, 保留了描述符3到9. 在某些时候将这些格外的文件描述符分配给stdin, stdout, 或者是stderr作为临时的副本链接是非常有用的.
返回:Bad file descriptor。
查看PHP扩展的源代码,如下:
PHP的最新扩展:dio_open代码片段摘录。
返回错误在这一块,如下:
这儿涉及到fcntl函数的调用返回有问题,查其相关参数:
F_GETFL : 用来读取open系统调用第二个参数设置的标志,即文件的打开方式(O_RDONLY,O_WRONLY,O_APPEND等),它不需要第三个参数。实际上上这时函数返回的是file结构中的flags域。
其相当于只是创建了一个文件,并未确定这个文件的状态。在C里会补上一个 O_RDWR,
fd = open ("hole", O_CREAT, S_IRWXU | S_IRWXG) ;
变为:
fd = open ("hole", O_CREAT | O_RDWR, S_IRWXU | S_IRWXG) ;
fcntl这个系统调用功能比较多,可以执行多种操作,其内核函数在fs/fcntl.c中定义:
1.入口参数:
(1)fd:欲访问文件的文件描述符
(2)cmd:要执行的操作的命令,这个参数定义了10个标志,下面介绍其中的5个,
F_DUPFD、F_GETFD、F_SETFD、F_GETFL和 F_SETFL
(3)arg:可选,主要根据第二个命令来决定是否需要
2.出口参数:根据第二个参数的不同,这个返回值也不一样。
3.函数功能:
第二个参数是F_DUPFD,则进行复制文件描述符的操作。它需要用到第三个参数arg,这时arg是一个文件描述符,fcntl(fd,F_DUPFD,arg)在files_struct结构中从指定的arg开始搜索空闲的文件描述符,找到第一个后,将fd的内容复制进来,然后将新找到的文件描述符返回。
第二个参数是F_GETFD,则返回files_struct结构中close_on_exec的值。无需第三个参数。
第二个参数是F_SETFD,则需要第三个参数,若arg最低位为1,则对close_on_exec置位,否则清除close_on_exec。
第二个参数是F_GETFL,则用来读取open系统调用第二个参数设置的标志,即文件的打开方式(O_RDONLY,O_WRONLY,O_APPEND等),它不需要第三个参数。实际上上这时函数返回的是file结构中的flags域。
第二个参数是F_SETFL,则用来对open系统调用第二个参数设置的标志进行改变,但是它只能对O_APPEND和O_NONBLOCK标志进行改变,这时需要第三个参数arg,用来确定如何改变。函数返回0表示操作成功,否则返回-1,并置一个错
这个文件句柄的操作感觉还大有学问在里面,有什么同步,异步等等。
参看:http://blog.csdn.net/wallwind/article/details/7281700
回家了解:
php 打印测试技巧
Php/Js/Shell/Go jackxiang 2012-6-30 10:30
点评:值得借鉴其方法,所以转载如下:
以前习惯用 echo,print_r 等方法来测试php输出,这样多多少少会影响到代码的正常运行,现改成“把测试变量输出到文本”的形式,可实现日志形式的调试,代码如下:
主要是用到“File_writefile”函数,对上面的 “File_writefile”函数再包装一下:
应用如下:
输出结果:
来自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/12/02/2272161.html
以前习惯用 echo,print_r 等方法来测试php输出,这样多多少少会影响到代码的正常运行,现改成“把测试变量输出到文本”的形式,可实现日志形式的调试,代码如下:
主要是用到“File_writefile”函数,对上面的 “File_writefile”函数再包装一下:
应用如下:
输出结果:
来自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/12/02/2272161.html
尝试方法:进入控制面板--程序--程序功能--打开或关闭windows功能--勾选.Net3.5,这个包含了2.0版本。然后等待下载完成即可,这种方法可以解决多数朋友经常遇到的win8程序无响应的问题。
小知识:. NET 是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。
小知识:. NET 是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。
微软免费杀毒软件MSE(Microsoft Security Essentials)当前的最新版本是4.0,日前MSE预发布项目提供了最新版MSE供用户体验测试,新版为MSE 4.1预发布版(具体版本号4.1.204.0),这也意味着MSE 4.1即将发布,想要提前体验MSE 4.1的用户不妨安装此预发布版。
MSE 4.1修复了之前版本中存在的Bug,完善了性能,还包括以下新功能:
— 一键整合的Windows Defender Offline:只需一键,用户就可以轻松地使用Windows Defender Offline删除恶意软件,无需从单独的引导媒体重新启动。
— 云清洁修复:增强恶意软件清理,从云端下载清洁版本从而修复恶意软感染过的系统文件。
— 重新设计的网络防护引擎,提供了更好的防护性、可扩展性和性能;
— 完善启动体验。
MSE 4.1预发布版当前仅提供了英文版本,官方下载:
32位(10.2MB):http://download.microsoft.com/download/2/8/5/2859559A-3A1B-4331-AC88-4F59D789F9B9/mse_x86_prerelease_install.exe
64位(12.5MB):http://download.microsoft.com/download/2/8/5/2859559A-3A1B-4331-AC88-4F59D789F9B9/mse_x64_prerelease_install.exe
MSE 4.1修复了之前版本中存在的Bug,完善了性能,还包括以下新功能:
— 一键整合的Windows Defender Offline:只需一键,用户就可以轻松地使用Windows Defender Offline删除恶意软件,无需从单独的引导媒体重新启动。
— 云清洁修复:增强恶意软件清理,从云端下载清洁版本从而修复恶意软感染过的系统文件。
— 重新设计的网络防护引擎,提供了更好的防护性、可扩展性和性能;
— 完善启动体验。
MSE 4.1预发布版当前仅提供了英文版本,官方下载:
32位(10.2MB):http://download.microsoft.com/download/2/8/5/2859559A-3A1B-4331-AC88-4F59D789F9B9/mse_x86_prerelease_install.exe
64位(12.5MB):http://download.microsoft.com/download/2/8/5/2859559A-3A1B-4331-AC88-4F59D789F9B9/mse_x64_prerelease_install.exe
表单提交数据大小的限制:Firebug 达到了 Post 请求大小限制。
Php/Js/Shell/Go jackxiang 2012-6-28 10:15
今天,遇到:... Firebug 达到了 Post 请求大小限制。 ...
今天在做post表单提交多个textarea控件中的内容时,出现一些意外情况,为了避免以后再出现这种情况,有个清晰的思路,特此写下以下琐碎细节。测试环境为windows的iis。
以下内容针对一个textarea输入内容测试遇到的问题。当提交数据量比较小时,保存正常。当提交数据量为一篇文章时(大约30k左右),点击保存出现白页现象,没有任何反应。通过firebug查看网络查看表单提交情况,post选项中出现“... Firebug 达到了 Post 请求大小限制。 ...”这样的提示。
总结:
(1)post提交表单数据量限制为100k左右,超过将无法提交。
(2)在iis6.0中表单最大传输大小为200k,因此需要通过以下方式修改配置文件,实现大数据传输
1. 关闭 IIS Admin Service 服务
2. 打开 %WinDir%\system32\inetsrv\metabase.xml
3. 修改 AspMaxRequestEntityAllowed 的值为自己需要的, 默认为 204800,AspBufferingLimit也改成相同值,
4. 启动 IIS Admin Service
(3)在iis5.1以下post 方法限制传递的数据为2M
(3)get最大提交数据量为4k左右
(4)表单控件(如textarea)最大提交的数据量为30k左右,超过将出现以上异常情况,导致表单无法提交成功.
来自:http://blog.csdn.net/zouqingfang/article/details/7220229
今天在做post表单提交多个textarea控件中的内容时,出现一些意外情况,为了避免以后再出现这种情况,有个清晰的思路,特此写下以下琐碎细节。测试环境为windows的iis。
以下内容针对一个textarea输入内容测试遇到的问题。当提交数据量比较小时,保存正常。当提交数据量为一篇文章时(大约30k左右),点击保存出现白页现象,没有任何反应。通过firebug查看网络查看表单提交情况,post选项中出现“... Firebug 达到了 Post 请求大小限制。 ...”这样的提示。
总结:
(1)post提交表单数据量限制为100k左右,超过将无法提交。
(2)在iis6.0中表单最大传输大小为200k,因此需要通过以下方式修改配置文件,实现大数据传输
1. 关闭 IIS Admin Service 服务
2. 打开 %WinDir%\system32\inetsrv\metabase.xml
3. 修改 AspMaxRequestEntityAllowed 的值为自己需要的, 默认为 204800,AspBufferingLimit也改成相同值,
4. 启动 IIS Admin Service
(3)在iis5.1以下post 方法限制传递的数据为2M
(3)get最大提交数据量为4k左右
(4)表单控件(如textarea)最大提交的数据量为30k左右,超过将出现以上异常情况,导致表单无法提交成功.
来自:http://blog.csdn.net/zouqingfang/article/details/7220229
为什么不使用nginx+php(fastcgi)作为生产环境?
Php/Js/Shell/Go jackxiang 2012-6-25 20:54
前言,近来fastCGI流行,也有人提出了相反的看法,并作出了原因解释,觉得有道理,So。。。
php群里的兄弟:
nginx这么厉害吗?答:我测试,10000次,10次并发 机器,就是不死 65%cpu了,还不死。。。nginx防盗链牛逼可以根据参数加密。
php-fpm确实,听蛋疼的 5个进程,每个占12% 我操,cpu干不了别的了,php-fpm是相当的不行 cpu占用太厉害.用apache啊.apache有些特性不行。。。
Nginx 502:
fast_cgi设置
fastcgi_connect_timeout 30;
fastcgi_send_timeout 30;
fastcgi_read_timeout 30;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
Php-fpm设置
<value name="listen_address"> /dev/shm/php-fpm.sock </value>
<value name="max_children">128</value>
<value name="request_terminate_timeout">10s</value>
<value name="request_slowlog_timeout">5s</value>
<value name="slowlog">/path/to/slow.log</value>
<value name="rlimit_files">65535</value>
php(fastcgi)不够稳定,经常出现502错误,生成相对复杂的页面没有优势,反而会使php-cgi进程变为僵尸进程.
安全性,多用户多站点权限问题.php(fastcgi)在应对多用户多站点往往捉襟见肘,不易于实施.
整合其他开发语言,apache表现得游刃有余.资源利用恰到好处.
为什么采用nginx做前端,apache作为后端的方案?nginx在处理静态内容上较apache是几倍或几十倍的差异,因而放在前面过滤静态内容是最为恰当的.同时nginx也是一个负载均衡器,低资源消耗,高性能转发是它的特点.经过nginx在前面的过滤,后端的apache需要处理的内容相对就比较少了.只需负责处理动态内容就可以了.在性能与稳定性的权衡下,使用nginx+apache搭配会让它们在各自擅长的领域展现自身的价值.
http://www.vpser.net/build/nginx-apache-guide.html
php群里的兄弟:
nginx这么厉害吗?答:我测试,10000次,10次并发 机器,就是不死 65%cpu了,还不死。。。nginx防盗链牛逼可以根据参数加密。
php-fpm确实,听蛋疼的 5个进程,每个占12% 我操,cpu干不了别的了,php-fpm是相当的不行 cpu占用太厉害.用apache啊.apache有些特性不行。。。
Nginx 502:
fast_cgi设置
fastcgi_connect_timeout 30;
fastcgi_send_timeout 30;
fastcgi_read_timeout 30;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
Php-fpm设置
<value name="listen_address"> /dev/shm/php-fpm.sock </value>
<value name="max_children">128</value>
<value name="request_terminate_timeout">10s</value>
<value name="request_slowlog_timeout">5s</value>
<value name="slowlog">/path/to/slow.log</value>
<value name="rlimit_files">65535</value>
php(fastcgi)不够稳定,经常出现502错误,生成相对复杂的页面没有优势,反而会使php-cgi进程变为僵尸进程.
安全性,多用户多站点权限问题.php(fastcgi)在应对多用户多站点往往捉襟见肘,不易于实施.
整合其他开发语言,apache表现得游刃有余.资源利用恰到好处.
为什么采用nginx做前端,apache作为后端的方案?nginx在处理静态内容上较apache是几倍或几十倍的差异,因而放在前面过滤静态内容是最为恰当的.同时nginx也是一个负载均衡器,低资源消耗,高性能转发是它的特点.经过nginx在前面的过滤,后端的apache需要处理的内容相对就比较少了.只需负责处理动态内容就可以了.在性能与稳定性的权衡下,使用nginx+apache搭配会让它们在各自擅长的领域展现自身的价值.
http://www.vpser.net/build/nginx-apache-guide.html
响应消息的第一行为下面的格式:
HTTP-Version SP Status-Code SP Reason-Phrase CRLF
HTTP-Version表示支持的HTTP版本,例如为HTTP/1.1。
Status-Code是一个三个数字的结果代码。
Reason-Phrase给Status-Code提供一个简单的文本描述。Status-Code主要用于机器自动识别,Reason-Phrase主要用于帮助用户理解。Status-Code的第一个数字定义响应的类别,后两个数字没有分类的作用。第一个数字可能取5个不同的值:
1xx:信息响应类,表示接收到请求并且继续处理
2xx:处理成功响应类,表示动作被成功接收、理解和接受
3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
4xx:客户端错误,客户请求包含语法错误或者是不能正确执行
5xx:服务端错误,服务器不能正确执行一个正确的请求
响 应头域允许服务器传递不能放在状态行的附加信息,这些域主要描述服务器的信息和Request-URI进一步的信息。响应头域包含Age、 Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、WWW- Authenticate。对响应头域的扩展要求通讯双方都支持,如果存在不支持的响应头域,一般将会作为实体头域处理。
典型的响应消息:
HTTP/1.0200OK
Date:Mon,31Dec200104:25:57GMT
Server:Apache/1.3.14(Unix)
Content-type:text/html
Last-modified:Tue,17Apr200106:46:28GMT
Etag:”a030f020ac7c01:1e9f”
Content-length:39725426
Content-range:bytes554554-40279979/40279980
上例第一行表示HTTP服务端响应一个GET方法。棕色的部分表示响应头域的信息,绿色的部分表示通用头部分,红色的部分表示实体头域的信息。
Location响应头
Location响应头用于重定向接收者到一个新URI地址。
Server响应头
Server响应头包含处理请求的原始服务器的软件信息。此域能包含多个产品标识和注释,产品标识一般按照重要性排序。
来自:http://yhjhappy234.blog.163.com/blog/static/31632832201131483532764/
HTTP-Version SP Status-Code SP Reason-Phrase CRLF
HTTP-Version表示支持的HTTP版本,例如为HTTP/1.1。
Status-Code是一个三个数字的结果代码。
Reason-Phrase给Status-Code提供一个简单的文本描述。Status-Code主要用于机器自动识别,Reason-Phrase主要用于帮助用户理解。Status-Code的第一个数字定义响应的类别,后两个数字没有分类的作用。第一个数字可能取5个不同的值:
1xx:信息响应类,表示接收到请求并且继续处理
2xx:处理成功响应类,表示动作被成功接收、理解和接受
3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
4xx:客户端错误,客户请求包含语法错误或者是不能正确执行
5xx:服务端错误,服务器不能正确执行一个正确的请求
响 应头域允许服务器传递不能放在状态行的附加信息,这些域主要描述服务器的信息和Request-URI进一步的信息。响应头域包含Age、 Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、WWW- Authenticate。对响应头域的扩展要求通讯双方都支持,如果存在不支持的响应头域,一般将会作为实体头域处理。
典型的响应消息:
HTTP/1.0200OK
Date:Mon,31Dec200104:25:57GMT
Server:Apache/1.3.14(Unix)
Content-type:text/html
Last-modified:Tue,17Apr200106:46:28GMT
Etag:”a030f020ac7c01:1e9f”
Content-length:39725426
Content-range:bytes554554-40279979/40279980
上例第一行表示HTTP服务端响应一个GET方法。棕色的部分表示响应头域的信息,绿色的部分表示通用头部分,红色的部分表示实体头域的信息。
Location响应头
Location响应头用于重定向接收者到一个新URI地址。
Server响应头
Server响应头包含处理请求的原始服务器的软件信息。此域能包含多个产品标识和注释,产品标识一般按照重要性排序。
来自:http://yhjhappy234.blog.163.com/blog/static/31632832201131483532764/
SecureCRT for MAC 无限试用方法
Unix/LinuxC技术 jackxiang 2012-6-25 13:15
Linux下开发的兄弟有福了:
SecureCRT for MAC :SecureCRT-6.7.1-188.osx_x86.dmg
1.上官网下载SecureCRT for MAC
2.因为试用期有30天,等到差不多到期时,就可以删除文件“SecureCRT_eval.lic ”
rm Users/用户名/Library/Application Support/VanDyke/SecureCRT/Config/SecureCRT_eval.lic
3.SecureCRT Version 6.7.1 (build 188) - Official Release 测试通过^0^
PS:写个crontab或开机自动运行sh程序一劳永逸,不过每次打开软件都后会显示还有多少天到期有点烦哈:)
SecureCRT for MAC :SecureCRT-6.7.1-188.osx_x86.dmg
1.上官网下载SecureCRT for MAC
2.因为试用期有30天,等到差不多到期时,就可以删除文件“SecureCRT_eval.lic ”
rm Users/用户名/Library/Application Support/VanDyke/SecureCRT/Config/SecureCRT_eval.lic
3.SecureCRT Version 6.7.1 (build 188) - Official Release 测试通过^0^
PS:写个crontab或开机自动运行sh程序一劳永逸,不过每次打开软件都后会显示还有多少天到期有点烦哈:)
Demo:
查看:
tail -f /tmp/jack.txt
一:tee
方法一、配置文件
在服务器上的/etc/my.cnf中的[client]加入
tee =/tmp/client_mysql.log即可.
方法二、命令行
1.mysql -uroot --tee=/tmp/client_mysql.log
2.这个类似于sqlplus的spool功能,可以将命令行中的结果保存到外部文件中。如果指定已经存在的文件,则结果会附加到文件中。
mysql> tee client_mysql.log
Logging to file 'client_mysql.log '
或者
mysql> \T client_mysql.log
Logging to file 'client_mysql.log '
mysql> notee
Outfile disabled.
或者
mysql> \t
Outfile disabled.
二:mysql pager、tee、prompt说明:
当表中数据行很多,一页看不完时,可以使用pager [cmd]更改mysql的查询输出,cmd为linux的标准命令,如:
mysql> pager less;
mysql> select * from test.dept;
查询输出都是通过管道传给less命令,可以实现分页浏览
mysql> nopager;即可回到标准输出stdout
还可使用如下语句将输出发送到文件中:
mysql> pager cat>/home/pw/osq.txt;
less说明:
退出:“:q”
下一页:“F”
上一页:“B”
查询
向前搜索
/ - 使用一个模式进行搜索,并定位到下一个匹配的文本
n - 向前查找下一个匹配的文本
N - 向后查找前一个匹配的文本
向后搜索
? - 使用模式进行搜索,并定位到前一个匹配的文本
n - 向后查找下一个匹配的文本
N - 向前查找前一个匹配的文本
tee说明
mysql>tee filename
可以将之后在mysql的所有输入输出操作记录到filename中。
prompt说明
用于修改mysql提示符
[mysql]
prompt=(
来自:http://blog.sina.com.cn/s/blog_45722cc00100z5wm.html
阅读全文
查看:
tail -f /tmp/jack.txt
一:tee
方法一、配置文件
在服务器上的/etc/my.cnf中的[client]加入
tee =/tmp/client_mysql.log即可.
方法二、命令行
1.mysql -uroot --tee=/tmp/client_mysql.log
2.这个类似于sqlplus的spool功能,可以将命令行中的结果保存到外部文件中。如果指定已经存在的文件,则结果会附加到文件中。
mysql> tee client_mysql.log
Logging to file 'client_mysql.log '
或者
mysql> \T client_mysql.log
Logging to file 'client_mysql.log '
mysql> notee
Outfile disabled.
或者
mysql> \t
Outfile disabled.
二:mysql pager、tee、prompt说明:
当表中数据行很多,一页看不完时,可以使用pager [cmd]更改mysql的查询输出,cmd为linux的标准命令,如:
mysql> pager less;
mysql> select * from test.dept;
查询输出都是通过管道传给less命令,可以实现分页浏览
mysql> nopager;即可回到标准输出stdout
还可使用如下语句将输出发送到文件中:
mysql> pager cat>/home/pw/osq.txt;
less说明:
退出:“:q”
下一页:“F”
上一页:“B”
查询
向前搜索
/ - 使用一个模式进行搜索,并定位到下一个匹配的文本
n - 向前查找下一个匹配的文本
N - 向后查找前一个匹配的文本
向后搜索
? - 使用模式进行搜索,并定位到前一个匹配的文本
n - 向后查找下一个匹配的文本
N - 向前查找前一个匹配的文本
tee说明
mysql>tee filename
可以将之后在mysql的所有输入输出操作记录到filename中。
prompt说明
用于修改mysql提示符
[mysql]
prompt=(
来自:http://blog.sina.com.cn/s/blog_45722cc00100z5wm.html
阅读全文
1:在终端下:mysql -V。 以下是代码片段:
[shengting@login ~]$ mysql -V
mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)
2:在mysql中:mysql> status;
以下是代码片段:
mysql> status;
--------------
mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)
Connection id: 416
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 3.23.56-log
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: latin1
Server characterset: latin1
UNIX socket: /tmp/mysql_3311.sock
Uptime: 62 days 21 hours 21 min 57 sec
Threads: 1 Questions: 584402560 Slow queries: 424 Opens: 59664208 Flush tables: 1 Open tables: 64 Queries per second avg: 107.551
3:在help里面查找
以下是代码片段:
[shengting@login ~]$ mysql --help | grep Distrib
mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)
4:使用mysql的函数
以下是代码片段:
mysql> select version();
+-------------+
| version() |
+-------------+
| 3.23.56-log |
+-------------+
1 row in set (0.00 sec)
来自:http://www.cnblogs.com/end/archive/2011/10/18/2216461.html
[shengting@login ~]$ mysql -V
mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)
2:在mysql中:mysql> status;
以下是代码片段:
mysql> status;
--------------
mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)
Connection id: 416
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 3.23.56-log
Protocol version: 10
Connection: Localhost via UNIX socket
Client characterset: latin1
Server characterset: latin1
UNIX socket: /tmp/mysql_3311.sock
Uptime: 62 days 21 hours 21 min 57 sec
Threads: 1 Questions: 584402560 Slow queries: 424 Opens: 59664208 Flush tables: 1 Open tables: 64 Queries per second avg: 107.551
3:在help里面查找
以下是代码片段:
[shengting@login ~]$ mysql --help | grep Distrib
mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686)
4:使用mysql的函数
以下是代码片段:
mysql> select version();
+-------------+
| version() |
+-------------+
| 3.23.56-log |
+-------------+
1 row in set (0.00 sec)
来自:http://www.cnblogs.com/end/archive/2011/10/18/2216461.html
[实践Ok]在CentOS6.2下安装DNS并快速配置实例,共八步,心路历程如下:
背景介绍:
在日常的开发中,往往会在测试机和外网的Http的Url实际接口是不一样的,在测试机一个Url地址,在外网中又是一个地址。
这样在我们在开发时,在上线时就会去修改一下接口,在线下测试时用线下的Url接口,最后的情况是,在SVN的管理中会变得
很混乱,也就是在上线上的版本和线下测试的版本在改动上来回切换,版本号不段的切换,为此,为了解决这个问题,必须引入
自己建立一套内网测试系统的DNS来实现其和外网一样的环境,进而在实际开发中就不会出现因URL的接口包含的不同域名而导致
了代码版本管理的版本号不段攀升。
实际操作:
在Linux下尤其是CentOS这样的免费系统上有Yum这样的包管理工具来安DNS服务器,但是我在实践中发现其并不理想,可能是打出的Rpm包多少有些
不太让人满意,我试过用直接运行:yum install bind bind-utils bind-libs bind-chroot caching-nameserver,但后来在配置DNS时出现这样那样的问题.
找不到配置文件?(loading from master file 225.168.192.in-add.arpa failed: file not found)我X,什么权限问题都试了,但就是搞不定,于是否,
改用源码安装,这样来得更保险此些,操控性也强很多,有人问我,你的人生由谁来操盘:我操!
我的上手安装和配置如下:
一:开始安装DNS服务器Bind:
下载 bind http://www.isc.org,解压bind-9.9.1-P1.tar.gz。
tar -zxvf bind-9.9.1-P1.tar.gz
进入 bind-9.9.1-P1.tar.gz文件夹
cd bind-9.9.1-P1
创建安装目录,我是安装在 /usr/local/named
mkdir /usr/local/named
编译,指定安装目录,指定man目录,开启多线程支持(测试环境也就没有必要搞多线程了,要整看帮助。)
./configure --prefix=/usr/local/named
Make 大约需要几分钟,只要不报错就继续下去。
make
Make install 安装
make install
没有报错,就表示安装成功了。
创建以下目录以备用
mkdir /usr/local/named/namedb
二:开始配置bind
创建 rndc.conf文件,用bind自带程序生成
cd /usr/local/named/
sbin/rndc-confgen > etc/rndc.conf //一直死在这儿了,只得强制终止。
查原因,在网上搜索:linux安装dns,rndc-confgen没反应,哈,有一篇文章说到点上了,
Url:http://www.nginxs.com/linux/43.html,他说是,摘录如下:
在官方网站上看到这么一条信息
You must use the keyboard to create entropy, since your system is lacking
/dev/random (or equivalent)
start typing:
rndc-confgen: generate key: out of entropy
大概意思就是服务器上没有random产生器,这种情况下我们就手动伪造一个文件代替/dev/random的功能
###新建一个 random 文件随即输入一串数字“记得要长~~
shell $> vim random
asdkfjalsjdflajsldfjlasjdflajsldfjalsjdflajslfjalsjflasjfl
###查看 rndc-confgen 帮助
shell $> ../sbin/rndc-confgen –help
rndc-confgen: invalid argument –
Usage:
rndc-confgen [-a] [-b bits] [-c keyfile] [-k keyname] [-p port] [-r randomfile] [-s addr] [-t chrootdir] [-u user]
-a: generate just the key clause and write it to keyfile (/usr/local/named/etc/rndc.key)
-b bits: from 1 through 512, default 128; total length of the secret
-c keyfile: specify an alternate key file (requires -a)
-k keyname: the name as it will be used in named.conf and rndc.conf
-p port: the port named will listen on and rndc will connect to
-r randomfile: a file containing random data
-s addr: the address to which rndc should connect
-t chrootdir: write a keyfile in chrootdir as well (requires -a)
-u user: set the keyfile owner to “user” (requires -a)
,上面这一句是核心,自己整个Random文件是桥梁。
tail -10 rndc.key | head -9 | sed 's/# //g' > named.conf
把这个named.conf放在etc的文件夹子下:/usr/local/named/etc/named.conf。
ok 问题解决了,接下来我们配置 我们的 域名服务器吧。
三:配置篇
编辑named.conf
# vi /usr/local/named/etc/named.conf
写入以下内容:我的Ip:192.168.225.128 ,注意:225.168.192.in-add.arpa是Ip的反解,刚好倒过来。
退出,保存。
创建并编辑 localhost.zone 文件
vi /usr/local/named/localhost.zone
写入以下内容:
创建并编辑 localhost.rev 文件
# vi /usr/local/named/localhost.rev
因前面在,51test.com这个是在其他网页上抄过来的简单示例,于是也就顺便把文件也贴上:
vi /usr/local/named/51test.com.zone
再不是51test.com的反解配置文件:
vi /usr/local/named/225.168.192.in-add.arpa
配置注意事项:
配置文件中的 "@" 符号前不能有任何空白字符
配置文件中的 "IN" 字符前必须有空格或TAB
到此,配置大功告成。
四:
下载一个named.root 到/usr/local/named/下
ftp://ftp.rs.internic.net/domain/named.root
Ftp失效,从这儿下载:
http://www.smth.edu.cn/bbsgcon.php?board=FreeBSD&num=1209
特别注意:bind的配置文档是区分大小写的,因现在那个FTP好像下载不了,于是我也贴下面。
vi /usr/local/named/named.ca
五:运行Bind程序,如下方式加载配置文件启动,加上调试信息参数:
如果运行结果最后一行显示Running
表明安装并启动成功。
最后需要注意的内容是不要忘了是否真正的开启服务器端口(以下是named.conf文件中端口的设置语句,可以看到端口号是 53:telnet x.x.x.x 53)
当然也可以用:nmap localhost ,没有yum安装,这种小工具问题不大用yum来做。
yum install nmap
Total download size: 2.3 M
Installed size: 7.5 M
Is this ok [y/N]: y
Downloading Packages:
root@192.168.225.128:/usr/local/named# nmap localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2012-06-18 03:09 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000033s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
3306/tcp open mysql
9000/tcp open cslistener
端口号是 53就是DNS Bind的端口。
六:停止及启动:
root@192.168.225.128:/usr/local/named# ps aux|grep name
root 19024 0.0 1.2 10624 6216 pts/0 T 03:00 0:00 /usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf
root@192.168.225.128:/usr/local/named# kill -9 19024
root@192.168.225.128:/usr/local/named# ps aux|grep name
[2]+ 已杀死 /usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf
七:本机测试,外部机器测试是否dns生效:
vi /etc/resolv.conf
加上,去掉注释其他Dns的Ip值:
nameserver 192.168.225.128
启动Dns后,清楚Bind服务器上的Dns缓存:
root@192.168.225.128:/usr/local/named# ./sbin/rndc flush
root@192.168.225.128:/usr/local/named# ping www.51test.com
PING www.51test.com (192.168.225.128) 56(84) bytes of data.
64 bytes from 192.168.225.128: icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from 192.168.225.128: icmp_seq=2 ttl=64 time=0.058 ms
八:将服务设置为开机自启,把named 添加到启动项,随操作系统一起启动即可:
但是,我们现在是源码的安装,So,得这样子喔。
修改来自Apache里的启动shell(参看一下自启动的标准),也可以不用修改,直接如下也成,内容如下:
1)保存为/etc/init.d/dns
脚本执行权限添加:
2)chmod -R a+x /etc/init.d/dns //env: /etc/init.d/dns: 权限不够 ,必须给加上。
3)把脚本拷贝至/etc/init.d/目录下,执行命令:
ln -s /etc/init.d/dns /etc/rc.d/rc3.d/S61dns
ln -s /etc/init.d/dns /etc/rc.d/rc4.d/S61dns
ln -s /etc/init.d/dns /etc/rc.d/rc5.d/S61dns
再执行:
chkconfig --add dns //解释:相当于Windows下的自动启动服务,特别要注意:chkconfig –add dns的时候,出现dns服务不支持chkconfig。
如果想让服务支持chkconfig,必须定义服务的启动级,启动优先级,关闭优先级,还有描述,如上,必须得加上描述等。
chkconfig --levels dns345 on //也成
开机启动设置完毕:
service dns start
-----------------------------------------------
下次一开机也就会运行这个脚本,以启动自己定义的Dns服务器。
启动后,查看是否自己就启动了呢?如下:
果然,又启动起来了,大功告成,整完收工。
Dns服务器从安装到调试配置并测试完成,Eof。Write and Opt By:jackxiang 2012/06/17 20:30:00
后来,我自己配置了一个新的域名:naimanqi.com.cn ,我的Linux机器IP是:192.168.1.105
修改配置文件:
1)共用如下:
3)反向解析文件:
4)正向解析的文件:
注意这一行: IN A 192.168.1.105
这个目的是把浏览器访问:naimanqi.com.cn这个域名也给解析到IP: 192.168.1.105上来,跟在后面的www IN A 192.168.1.105 这个是对www解析的,其实它是一个二级域名和admin 这种二级域名是一个意思:admin IN A 192.168.1.105 。。。EOF。
最后,可以这样玩这个DNS,这个CentOs6.3的Linux 不是建立在这个NAT下的嘛,后修改为Bridge(桥连),这样后,反正是在一个网段内(路由器下),把自己外网的这台Windows下的机器的DNS由192.168.1.1修改为:192.168.1.105,这样既可以调试刚才配置的内部DNS进行调试,也可 以访问外网,为什么呢?是因为:
是因,内部DNS没有找到那个地址后,它自动转给上一级DNS去了,后得到那个外部网站的IP地址了。但修改为NAT后,好像启动Centos里的DNS后,再在Windows上修改IP为桥连后的IP好像DNS解析不了,在Linux自己修改 /etc/resolve.conf后是可以的,所以,建议用桥连方式来开发,少用NAT方式,这样可以在一个路由器下的电脑都可以配置上这个Dns来访问该网站和开发网部(samba),很是方便,而DNS设置后,如果没有这个网站在内网,它便会访问外网,这种机制也是很好的。
背景介绍:
在日常的开发中,往往会在测试机和外网的Http的Url实际接口是不一样的,在测试机一个Url地址,在外网中又是一个地址。
这样在我们在开发时,在上线时就会去修改一下接口,在线下测试时用线下的Url接口,最后的情况是,在SVN的管理中会变得
很混乱,也就是在上线上的版本和线下测试的版本在改动上来回切换,版本号不段的切换,为此,为了解决这个问题,必须引入
自己建立一套内网测试系统的DNS来实现其和外网一样的环境,进而在实际开发中就不会出现因URL的接口包含的不同域名而导致
了代码版本管理的版本号不段攀升。
实际操作:
在Linux下尤其是CentOS这样的免费系统上有Yum这样的包管理工具来安DNS服务器,但是我在实践中发现其并不理想,可能是打出的Rpm包多少有些
不太让人满意,我试过用直接运行:yum install bind bind-utils bind-libs bind-chroot caching-nameserver,但后来在配置DNS时出现这样那样的问题.
找不到配置文件?(loading from master file 225.168.192.in-add.arpa failed: file not found)我X,什么权限问题都试了,但就是搞不定,于是否,
改用源码安装,这样来得更保险此些,操控性也强很多,有人问我,你的人生由谁来操盘:我操!
我的上手安装和配置如下:
一:开始安装DNS服务器Bind:
下载 bind http://www.isc.org,解压bind-9.9.1-P1.tar.gz。
tar -zxvf bind-9.9.1-P1.tar.gz
进入 bind-9.9.1-P1.tar.gz文件夹
cd bind-9.9.1-P1
创建安装目录,我是安装在 /usr/local/named
mkdir /usr/local/named
编译,指定安装目录,指定man目录,开启多线程支持(测试环境也就没有必要搞多线程了,要整看帮助。)
./configure --prefix=/usr/local/named
Make 大约需要几分钟,只要不报错就继续下去。
make
Make install 安装
make install
没有报错,就表示安装成功了。
创建以下目录以备用
mkdir /usr/local/named/namedb
二:开始配置bind
创建 rndc.conf文件,用bind自带程序生成
cd /usr/local/named/
sbin/rndc-confgen > etc/rndc.conf //一直死在这儿了,只得强制终止。
查原因,在网上搜索:linux安装dns,rndc-confgen没反应,哈,有一篇文章说到点上了,
Url:http://www.nginxs.com/linux/43.html,他说是,摘录如下:
在官方网站上看到这么一条信息
You must use the keyboard to create entropy, since your system is lacking
/dev/random (or equivalent)
start typing:
rndc-confgen: generate key: out of entropy
大概意思就是服务器上没有random产生器,这种情况下我们就手动伪造一个文件代替/dev/random的功能
###新建一个 random 文件随即输入一串数字“记得要长~~
shell $> vim random
asdkfjalsjdflajsldfjlasjdflajsldfjalsjdflajslfjalsjflasjfl
###查看 rndc-confgen 帮助
shell $> ../sbin/rndc-confgen –help
rndc-confgen: invalid argument –
Usage:
rndc-confgen [-a] [-b bits] [-c keyfile] [-k keyname] [-p port] [-r randomfile] [-s addr] [-t chrootdir] [-u user]
-a: generate just the key clause and write it to keyfile (/usr/local/named/etc/rndc.key)
-b bits: from 1 through 512, default 128; total length of the secret
-c keyfile: specify an alternate key file (requires -a)
-k keyname: the name as it will be used in named.conf and rndc.conf
-p port: the port named will listen on and rndc will connect to
-r randomfile: a file containing random data
-s addr: the address to which rndc should connect
-t chrootdir: write a keyfile in chrootdir as well (requires -a)
-u user: set the keyfile owner to “user” (requires -a)
,上面这一句是核心,自己整个Random文件是桥梁。
tail -10 rndc.key | head -9 | sed 's/# //g' > named.conf
把这个named.conf放在etc的文件夹子下:/usr/local/named/etc/named.conf。
ok 问题解决了,接下来我们配置 我们的 域名服务器吧。
三:配置篇
编辑named.conf
# vi /usr/local/named/etc/named.conf
写入以下内容:我的Ip:192.168.225.128 ,注意:225.168.192.in-add.arpa是Ip的反解,刚好倒过来。
退出,保存。
创建并编辑 localhost.zone 文件
vi /usr/local/named/localhost.zone
写入以下内容:
创建并编辑 localhost.rev 文件
# vi /usr/local/named/localhost.rev
因前面在,51test.com这个是在其他网页上抄过来的简单示例,于是也就顺便把文件也贴上:
vi /usr/local/named/51test.com.zone
再不是51test.com的反解配置文件:
vi /usr/local/named/225.168.192.in-add.arpa
配置注意事项:
配置文件中的 "@" 符号前不能有任何空白字符
配置文件中的 "IN" 字符前必须有空格或TAB
到此,配置大功告成。
四:
下载一个named.root 到/usr/local/named/下
ftp://ftp.rs.internic.net/domain/named.root
Ftp失效,从这儿下载:
http://www.smth.edu.cn/bbsgcon.php?board=FreeBSD&num=1209
特别注意:bind的配置文档是区分大小写的,因现在那个FTP好像下载不了,于是我也贴下面。
vi /usr/local/named/named.ca
五:运行Bind程序,如下方式加载配置文件启动,加上调试信息参数:
如果运行结果最后一行显示Running
表明安装并启动成功。
最后需要注意的内容是不要忘了是否真正的开启服务器端口(以下是named.conf文件中端口的设置语句,可以看到端口号是 53:telnet x.x.x.x 53)
当然也可以用:nmap localhost ,没有yum安装,这种小工具问题不大用yum来做。
yum install nmap
Total download size: 2.3 M
Installed size: 7.5 M
Is this ok [y/N]: y
Downloading Packages:
root@192.168.225.128:/usr/local/named# nmap localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2012-06-18 03:09 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000033s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
Not shown: 994 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
3306/tcp open mysql
9000/tcp open cslistener
端口号是 53就是DNS Bind的端口。
六:停止及启动:
root@192.168.225.128:/usr/local/named# ps aux|grep name
root 19024 0.0 1.2 10624 6216 pts/0 T 03:00 0:00 /usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf
root@192.168.225.128:/usr/local/named# kill -9 19024
root@192.168.225.128:/usr/local/named# ps aux|grep name
[2]+ 已杀死 /usr/local/named/sbin/named -gc /usr/local/named/etc/named.conf
七:本机测试,外部机器测试是否dns生效:
vi /etc/resolv.conf
加上,去掉注释其他Dns的Ip值:
nameserver 192.168.225.128
启动Dns后,清楚Bind服务器上的Dns缓存:
root@192.168.225.128:/usr/local/named# ./sbin/rndc flush
root@192.168.225.128:/usr/local/named# ping www.51test.com
PING www.51test.com (192.168.225.128) 56(84) bytes of data.
64 bytes from 192.168.225.128: icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from 192.168.225.128: icmp_seq=2 ttl=64 time=0.058 ms
八:将服务设置为开机自启,把named 添加到启动项,随操作系统一起启动即可:
但是,我们现在是源码的安装,So,得这样子喔。
修改来自Apache里的启动shell(参看一下自启动的标准),也可以不用修改,直接如下也成,内容如下:
1)保存为/etc/init.d/dns
脚本执行权限添加:
2)chmod -R a+x /etc/init.d/dns //env: /etc/init.d/dns: 权限不够 ,必须给加上。
3)把脚本拷贝至/etc/init.d/目录下,执行命令:
ln -s /etc/init.d/dns /etc/rc.d/rc3.d/S61dns
ln -s /etc/init.d/dns /etc/rc.d/rc4.d/S61dns
ln -s /etc/init.d/dns /etc/rc.d/rc5.d/S61dns
再执行:
chkconfig --add dns //解释:相当于Windows下的自动启动服务,特别要注意:chkconfig –add dns的时候,出现dns服务不支持chkconfig。
如果想让服务支持chkconfig,必须定义服务的启动级,启动优先级,关闭优先级,还有描述,如上,必须得加上描述等。
chkconfig --levels dns345 on //也成
开机启动设置完毕:
service dns start
-----------------------------------------------
下次一开机也就会运行这个脚本,以启动自己定义的Dns服务器。
启动后,查看是否自己就启动了呢?如下:
果然,又启动起来了,大功告成,整完收工。
Dns服务器从安装到调试配置并测试完成,Eof。Write and Opt By:jackxiang 2012/06/17 20:30:00
后来,我自己配置了一个新的域名:naimanqi.com.cn ,我的Linux机器IP是:192.168.1.105
修改配置文件:
1)共用如下:
3)反向解析文件:
4)正向解析的文件:
注意这一行: IN A 192.168.1.105
这个目的是把浏览器访问:naimanqi.com.cn这个域名也给解析到IP: 192.168.1.105上来,跟在后面的www IN A 192.168.1.105 这个是对www解析的,其实它是一个二级域名和admin 这种二级域名是一个意思:admin IN A 192.168.1.105 。。。EOF。
最后,可以这样玩这个DNS,这个CentOs6.3的Linux 不是建立在这个NAT下的嘛,后修改为Bridge(桥连),这样后,反正是在一个网段内(路由器下),把自己外网的这台Windows下的机器的DNS由192.168.1.1修改为:192.168.1.105,这样既可以调试刚才配置的内部DNS进行调试,也可 以访问外网,为什么呢?是因为:
是因,内部DNS没有找到那个地址后,它自动转给上一级DNS去了,后得到那个外部网站的IP地址了。但修改为NAT后,好像启动Centos里的DNS后,再在Windows上修改IP为桥连后的IP好像DNS解析不了,在Linux自己修改 /etc/resolve.conf后是可以的,所以,建议用桥连方式来开发,少用NAT方式,这样可以在一个路由器下的电脑都可以配置上这个Dns来访问该网站和开发网部(samba),很是方便,而DNS设置后,如果没有这个网站在内网,它便会访问外网,这种机制也是很好的。
虚拟机默认启动Mysql,发现没有启动得了,于是,看了下Mysql的启动日志,如下:
解决办法:
这主要是没有权限读取,给个权限就OK了
1: 初始化数据库做了没有?
/usr/local/mysql/bin/mysqld_install_db --user=mysql
2:权限问题
chown -R root.mysql /usr/local/mysql/
chown -R mysql /usr/local.mysql/var/
调整lib库路径:
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
重新加载配置
ldconfig
启动mysql
/usr/local/mysql/bin/mysql_safe --user=mysql &
查看是否启动了
netstat -ntpl | grep 3306
解决办法:
这主要是没有权限读取,给个权限就OK了
1: 初始化数据库做了没有?
/usr/local/mysql/bin/mysqld_install_db --user=mysql
2:权限问题
chown -R root.mysql /usr/local/mysql/
chown -R mysql /usr/local.mysql/var/
调整lib库路径:
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
重新加载配置
ldconfig
启动mysql
/usr/local/mysql/bin/mysql_safe --user=mysql &
查看是否启动了
netstat -ntpl | grep 3306
MySQL 命令自动补齐功能
实践得知,这个只是在本服务器上,且在是自己的client连接自己的db时有这个补全,但是呢,这有个问题是补全并不很智能。
方法一、
vi /etc/my.cnf
[mysql]
#no-auto-rehash
auto-rehash #添加auto-rehash
默认是:
[mysql] [mysql]
no-auto-rehash auto-rehash
在重启一下mysql服务,补全命令按 TAB 建,效果如下
mysql> select co
code comment commentCount consumeAmount content country connect
方法二、
在mysql启动时加参数auto-rehash
mysqld_safe --user=mysql --auto-rehash &
http://blog.chinaunix.net/uid-11327712-id-165736.html
实践得知,这个只是在本服务器上,且在是自己的client连接自己的db时有这个补全,但是呢,这有个问题是补全并不很智能。
方法一、
vi /etc/my.cnf
[mysql]
#no-auto-rehash
auto-rehash #添加auto-rehash
默认是:
[mysql] [mysql]
no-auto-rehash auto-rehash
在重启一下mysql服务,补全命令按 TAB 建,效果如下
mysql> select co
code comment commentCount consumeAmount content country connect
方法二、
在mysql启动时加参数auto-rehash
mysqld_safe --user=mysql --auto-rehash &
http://blog.chinaunix.net/uid-11327712-id-165736.html
问题:
Q: Could not find install dir for editor ...?
A: 找不到 编辑器的安装路径,绿色版本的一般会出现该问题;
编辑“tools\EditPlus安装路径.reg”,将其中的EditPlus路径修改为你自己的,然后保存,然后双击导入注册表即可。
或者打开regedit,在HKEY_CURRENT_USER\Software\ES-Computing\EditPlus 3\Install,设置Path字符串属性,值为 编辑器安装路径,不存在项或者目录就建立新的。
如果是EditPlus2,记得修改为EditPlus 2。
依旧不行后,找到了解决办法:
打开注册表编辑器
运行——>regedit
找到分支:HKEY_CURRENT_USER\SoftWare\ES-Computing\EditPlus 3
把EditPlus 3 修改为 EditPlus 2 ,对!就是只改个数字,原因请看下面的问题分析。
问题分析:
在sf上下载的OpenCTags版本号是 1.0.0 ,最后更新时间是2006年,当时还没发布editplus 3.
请看下面的源码被下划线修饰的那行。
附带openctags下载地址:
http://sourceforge.net/projects/openctags/files/openctags/
来自:http://my.oschina.net/u/135304/blog/61341
Q: Could not find install dir for editor ...?
A: 找不到 编辑器的安装路径,绿色版本的一般会出现该问题;
编辑“tools\EditPlus安装路径.reg”,将其中的EditPlus路径修改为你自己的,然后保存,然后双击导入注册表即可。
或者打开regedit,在HKEY_CURRENT_USER\Software\ES-Computing\EditPlus 3\Install,设置Path字符串属性,值为 编辑器安装路径,不存在项或者目录就建立新的。
如果是EditPlus2,记得修改为EditPlus 2。
依旧不行后,找到了解决办法:
打开注册表编辑器
运行——>regedit
找到分支:HKEY_CURRENT_USER\SoftWare\ES-Computing\EditPlus 3
把EditPlus 3 修改为 EditPlus 2 ,对!就是只改个数字,原因请看下面的问题分析。
问题分析:
在sf上下载的OpenCTags版本号是 1.0.0 ,最后更新时间是2006年,当时还没发布editplus 3.
请看下面的源码被下划线修饰的那行。
附带openctags下载地址:
http://sourceforge.net/projects/openctags/files/openctags/
来自:http://my.oschina.net/u/135304/blog/61341
关于php中设置session过期时间的问题
Php/Js/Shell/Go jackxiang 2012-6-13 16:43
关于php的session文件垃圾回收机制。我已经在网上看了不少资料。大致是说session过期并不会马上清除session文件,而是每次有请求过来的时候根据session.gc_probability/session.gc_divisor的值为概率去遍历以便session目录下的session文件看是否存在过期的session文件,如果过期则清楚。阅读全文
Windows下如何用C语言清空特定文件夹中的所有文件
Unix/LinuxC技术 jackxiang 2012-6-13 12:33
来自:http://software.intel.com/zh-cn/blogs/2011/10/12/c-13/?cid=sw:prccsdn2030