Lucene学习ȝ之八QLucene的查询语法,JavaCC及QueryParser(1)
http://forfuture1978.iteye.com/blog/661678
Lucene学习ȝ之八QLucene的查询语法,JavaCC及QueryParser(2)
http://forfuture1978.iteye.com/blog/661680
此系列相x?/span>
----------------------------------------------------------
http://forfuture1978.iteye.com/blog/546771
http://forfuture1978.iteye.com/blog/546808
http://forfuture1978.iteye.com/blog/546824
http://forfuture1978.iteye.com/blog/546832
http://forfuture1978.iteye.com/blog/546841
http://forfuture1978.iteye.com/blog/587113
http://forfuture1978.iteye.com/blog/587116
http://forfuture1978.iteye.com/blog/587120
http://forfuture1978.iteye.com/blog/587122
Lucene学习ȝ之五QLuceneD合q?merge)q程分析
http://forfuture1978.iteye.com/blog/609197
Lucene学习ȝ之六QLucene打分公式的数学推?/span>
http://forfuture1978.iteye.com/blog/609502
http://forfuture1978.iteye.com/blog/632815
http://forfuture1978.iteye.com/blog/632816
http://forfuture1978.iteye.com/blog/632822
http://forfuture1978.iteye.com/blog/632829
http://forfuture1978.iteye.com/blog/632840
http://forfuture1978.iteye.com/blog/632859
http://forfuture1978.iteye.com/blog/632869
http://forfuture1978.iteye.com/blog/632872
首先通过官方源安装FcitxQ默认已l是Fcitx4.0.1版本了,命o如下Q?/p>
sudo apt-get install fcitx
重启X后,通过Ctrl+Space可以调出来输入界面,可意外的是只鹅拼韌入和双拼Q急煞我也Q后来通过官方|站得知Q这个版本的Fcitx已经不默认安装所有库表了Q而需要单独安装,执行命o安装五笔拼音混合输入的库表:
sudo apt-get install fcitx-table-wbpy
另:安装单独的五W库表需要执行命令:sudo apt-get install fcitx-table-wubi
q样重启X 后,卛_享用五笔拼音混合输入了?/p>
Ubuntu 11.04出来了,|上q挺火的Q最q闲得无聊就装了一下Ubuntu 11.04Q本Z向用习惯了极点五W,本以为极点的作者不出Linux版的Q结果在|上一搜,居然有高手想到引用极点五W的字典实现可以同时打拼韛_?W,废话说Q下面看如何操作Q?/p>
ibus下用法如下:
1.下蝲文gQ?a target="_blank" >vissible-ibus.tar.gz
2. 右键点下载好?#8220;vissible-ibus.tar.gz”压羃包,在下拉菜单中?#8220;?存档安装?打开“Qɘq个压羃包挂载到pȝ?桌面会显C?#8220;vissible-ibus.tar.gz”的图??/p>
3. 按快捷键“Ctrl+Alt+T"打开l端执ƈ行如下命令:
sudo cp vissible.db /usr/share/ibus-table/tables
sudo cp vissible.gif /usr/share/ibus-table/icons
4.完了之后在桌面右键点“vissible-ibus.tar.gz“Q在下拉菜单中?#8221;卸蝲“
5. 在Q务栏右键炚w个键盘小图标Q在下拉菜单?#8220;重新重启”(q个重新启动q不是重q报启动pȝQ而是重新启动ibus输入?Q然后再右键炚w个键盘小?标ƈ在下拉菜单中?#8220;首选项”Q然后在弹出的窗口中点击“输入?#8221;选项卡,接着?#8220;选择输入?#8221;Q然后添加极点五W就可以了?/p>
来自 http://hi.baidu.com/bianxuehui/blog/item/4aa8cda0f095f2974610642e.html
在此记录下Nginx服务器nginx.conf的配|文件说? 部分注释攉与网l?
#q行用户
user www-data;
#启动q程,通常讄成和cpu的数量相{?br />worker_processes 1;#全局错误日志及PID文g
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;#工作模式及连接数上限
events {
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一U方?但是仅用于linux2.6以上内核,可以大大提高nginx的性能
worker_connections 1024;#单个后台worker processq程的最大ƈ发链接数
# multi_accept on;
}#讑֮http服务器,利用它的反向代理功能提供负蝲均衡支持
http {
#讑֮mimecd,cd由mime.type文g定义
include /etc/nginx/mime.types;
default_type application/octet-stream;
#讑֮日志格式
access_log /var/log/nginx/access.log;#sendfile 指o指定 nginx 是否调用 sendfile 函数Qzero copy 方式Q来输出文gQ对于普通应用,
#必须设ؓ on,如果用来q行下蝲{应用磁盘IO重负载应用,可设|ؓ offQ以q盘与网lI/O处理速度Q降低系l的uptime.
sendfile on;
#tcp_nopush on;#q接时旉
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
#开启gzip压羃
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";#讑֮h~冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;#讑֮负蝲均衡的服务器列表
upstream mysvr {
#weigth参数表示权|权D高被分配到的几率大
#本机上的Squid开?128端口
server 192.168.8.1:3128 weight=5;
server 192.168.8.2:80 weight=1;
server 192.168.8.3:80 weight=6;
}
server {
#侦听80端口
listen 80;
#定义使用www.xx.com讉K
server_name www.xx.com;#讑֮本虚拟主机的讉K日志
access_log logs/www.xx.com.access.log main;#默认h
location / {
root /root; #定义服务器的默认|站根目录位|?br /> index index.php index.html index.htm; #定义首页索引文g的名U?/p>fastcgi_pass www.xx.com;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}# 定义错误提示面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root;
}#静态文Ӟnginx自己处理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /var/www/virtual/htdocs;
#q期30天,静态文件不怎么更新Q过期可以设大一点,如果频繁更新Q则可以讄得小一炏V?br /> expires 30d;
}
#PHP 脚本h全部转发?FastCGI处理. 使用FastCGI默认配置.
location ~ \.php$ {
root /root;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/www$fastcgi_script_name;
include fastcgi_params;
}
#讑֮查看Nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
}
#止讉K .htxxx 文g
location ~ /\.ht {
deny all;
}
}
}
以上是一些基本的配置,使用Nginx最大的好处是负蝲均衡
如果要用负载均衡的?可以修改配置http节点如下Q?/p>
#讑֮http服务器,利用它的反向代理功能提供负蝲均衡支持
http {
#讑֮mimecd,cd由mime.type文g定义
include /etc/nginx/mime.types;
default_type application/octet-stream;
#讑֮日志格式
access_log /var/log/nginx/access.log;#省略上文有的一些配|节?/p>
#。。。。。。。。。?/p>
#讑֮负蝲均衡的服务器列表
upstream mysvr {
#weigth参数表示权|权D高被分配到的几率大
server 192.168.8.1x:3128 weight=5;#本机上的Squid开?128端口
server 192.168.8.2x:80 weight=1;
server 192.168.8.3x:80 weight=6;
}upstream mysvr2 {
#weigth参数表示权|权D高被分配到的几率大server 192.168.8.x:80 weight=1;
server 192.168.8.x:80 weight=6;
}#W一个虚拟服务器
server {
#侦听192.168.8.x?0端口
listen 80;
server_name 192.168.8.x;#对aspx后缀的进行负载均衡请?br /> location ~ .*\.aspx$ {
root /root; #定义服务器的默认|站根目录位|?br /> index index.php index.html index.htm; #定义首页索引文g的名U?/p>
proxy_pass http://mysvr ;#h转向mysvr 定义的服务器列表
#以下是一些反向代理的配置可删?
proxy_redirect off;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m; #允许客户端请求的最大单文g字节?br /> client_body_buffer_size 128k; #~冲Z理缓冲用Lh的最大字节数Q?br /> proxy_connect_timeout 90; #nginx跟后端服务器q接时旉(代理q接时)
proxy_send_timeout 90; #后端服务器数据回传时?代理发送超?
proxy_read_timeout 90; #q接成功后,后端服务器响应时?代理接收时)
proxy_buffer_size 4k; #讄代理服务器(nginxQ保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers~冲区,|页q_?2k以下的话Q这栯|?br /> proxy_busy_buffers_size 64k; #高负荷下~冲大小Qproxy_buffers*2Q?br /> proxy_temp_file_write_size 64k; #讑֮~存文g夹大,大于q个|从upstream服务器传}
}
}
configure 脚本定pȝ所h一些特性,特别?nginx 用来处理q接的方法。然后,它创?Makefile 文g?
configure 支持下面的选项Q?
--prefix=<path> - Nginx安装路径。如果没有指定,默认?/usr/local/nginx?
--sbin-path=<path> - Nginx可执行文件安装\径。只能安装时指定Q如果没有指定,默认?lt;prefix>/sbin/nginx?
--conf-path=<path> - 在没有给?c选项下默认的nginx.conf的\径。如果没有指定,默认?lt;prefix>/conf/nginx.conf?
--pid-path=<path> - 在nginx.conf中没有指定pid指o的情况下Q默认的nginx.pid的\径。如果没有指定,默认?<prefix>/logs/nginx.pid?
--lock-path=<path> - nginx.lock文g的\径?
--error-log-path=<path> - 在nginx.conf中没有指定error_log指o的情况下Q默认的错误日志的\径。如果没有指定,默认?<prefix>/logs/error.log?
--http-log-path=<path> - 在nginx.conf中没有指定access_log指o的情况下Q默认的讉K日志的\径。如果没有指定,默认?<prefix>/logs/access.log?
--user=<user> - 在nginx.conf中没有指定user指o的情况下Q默认的nginx使用的用戗如果没有指定,默认?nobody?
--group=<group> - 在nginx.conf中没有指定user指o的情况下Q默认的nginx使用的组。如果没有指定,默认?nobody?
--builddir=DIR - 指定~译的目?
--with-rtsig_module - 启用 rtsig 模块
--with-select_module --without-select_module - Whether or not to enable the select module. This module is enabled by default if a more suitable method such as kqueue, epoll, rtsig or /dev/poll is not discovered by configure.
//允许或不允许开启SELECT模式Q如?configure 没有扑ֈ更合适的模式Q比如:kqueue(sun os),epoll (linux kenel 2.6+), rtsig(实时信号)或?dev/poll(一U类似select的模式,底层实现与SELECT基本?同,都是采用轮训Ҏ) SELECT模式是默认安装模式
--with-poll_module --without-poll_module - Whether or not to enable the poll module. This module is enabled by default if a more suitable method such as kqueue, epoll, rtsig or /dev/poll is not discovered by configure.
--with-http_ssl_module - Enable ngx_http_ssl_module. Enables SSL support and the ability to handle HTTPS requests. Requires OpenSSL. On Debian, this is libssl-dev.
//开启HTTP SSL模块QNGINX可以支持HTTPSh。这个模块需要已l安装了OPENSSLQ在DEBIAN上是libssl-dev
--with-http_realip_module - 启用 ngx_http_realip_module
--with-http_addition_module - 启用 ngx_http_addition_module
--with-http_sub_module - 启用 ngx_http_sub_module
--with-http_dav_module - 启用 ngx_http_dav_module
--with-http_flv_module - 启用 ngx_http_flv_module
--with-http_stub_status_module - 启用 "server status" ?
--without-http_charset_module - 用 ngx_http_charset_module
--without-http_gzip_module - 用 ngx_http_gzip_module. 如果启用Q需?zlib ?
--without-http_ssi_module - 用 ngx_http_ssi_module
--without-http_userid_module - 用 ngx_http_userid_module
--without-http_access_module - 用 ngx_http_access_module
--without-http_auth_basic_module - 用 ngx_http_auth_basic_module
--without-http_autoindex_module - 用 ngx_http_autoindex_module
--without-http_geo_module - 用 ngx_http_geo_module
--without-http_map_module - 用 ngx_http_map_module
--without-http_referer_module - 用 ngx_http_referer_module
--without-http_rewrite_module - 用 ngx_http_rewrite_module. 如果启用需?PCRE ?
--without-http_proxy_module - 用 ngx_http_proxy_module
--without-http_fastcgi_module - 用 ngx_http_fastcgi_module
--without-http_memcached_module - 用 ngx_http_memcached_module
--without-http_limit_zone_module - 用 ngx_http_limit_zone_module
--without-http_empty_gif_module - 用 ngx_http_empty_gif_module
--without-http_browser_module - 用 ngx_http_browser_module
--without-http_upstream_ip_hash_module - 用 ngx_http_upstream_ip_hash_module
--with-http_perl_module - 启用 ngx_http_perl_module
--with-perl_modules_path=PATH - 指定 perl 模块的\?
--with-perl=PATH - 指定 perl 执行文g的\?
--http-log-path=PATH - Set path to the http access log
--http-client-body-temp-path=PATH - Set path to the http client request body temporary files
--http-proxy-temp-path=PATH - Set path to the http proxy temporary files
--http-fastcgi-temp-path=PATH - Set path to the http fastcgi temporary files
--without-http - 用 HTTP server
--with-mail - 启用 IMAP4/POP3/SMTP 代理模块
--with-mail_ssl_module - 启用 ngx_mail_ssl_module
--with-cc=PATH - 指定 C ~译器的路径
--with-cpp=PATH - 指定 C 预处理器的\?
--with-cc-opt=OPTIONS - Additional parameters which will be added to the variable CFLAGS. With the use of the system library PCRE in FreeBSD, it is necessary to indicate --with-cc-opt="-I /usr/local/include". If we are using select() and it is necessary to increase the number of file descriptors, then this also can be assigned here: --with-cc-opt="-D FD_SETSIZE=2048".
--with-ld-opt=OPTIONS - Additional parameters passed to the linker. With the use of the system library PCRE in FreeBSD, it is necessary to indicate --with-ld-opt="-L /usr/local/lib".
--with-cpu-opt=CPU - 为特定的 CPU ~译Q有效的值包括:pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64
--without-pcre - 止 PCRE 库的使用。同时也会禁?HTTP rewrite 模块。在 "location" 配置指o中的正则表达式也需?PCRE ?
--with-pcre=DIR - 指定 PCRE 库的源代码的路径?
--with-pcre-opt=OPTIONS - Set additional options for PCRE building.
--with-md5=DIR - Set path to md5 library sources.
--with-md5-opt=OPTIONS - Set additional options for md5 building.
--with-md5-asm - Use md5 assembler sources.
--with-sha1=DIR - Set path to sha1 library sources.
--with-sha1-opt=OPTIONS - Set additional options for sha1 building.
--with-sha1-asm - Use sha1 assembler sources.
--with-zlib=DIR - Set path to zlib library sources.
--with-zlib-opt=OPTIONS - Set additional options for zlib building.
--with-zlib-asm=CPU - Use zlib assembler sources optimized for specified CPU, valid values are: pentium, pentiumpro
--with-openssl=DIR - Set path to OpenSSL library sources
--with-openssl-opt=OPTIONS - Set additional options for OpenSSL building
--with-debug - 启用调试日志
--add-module=PATH - Add in a third-party module found in directory PATH
在不同版本间Q选项可能会有些许变化Q请L使用 ./configure --help 命o来检查一下当前的选项列表?
Ubuntu或者Debianpȝ中update-rc.d命oQ是用来更新pȝ启动的?本。这些脚本的链接位于/etc/rcN.d/目录Q对应脚本位?etc/init.d/目录。在了解update-rc.d命o之前Q你需要知道的?有关Linux pȝ主要启动步骤Q以及Ubuntu中运行别的知识?/p>
1 2 | init [0123456Ss] 例如Qinit 0 命oxQ?init 6 命o重新启动 |
1 2 | sudo install sysv-rc-conf //或者用带gui的工具bum sudo sysv-rc-conf |
1 | update-rc.d -f Q?span style="color: #c20cb9; font-weight: bold;">basenameQ?remove |
1 | update-rc.d Q?span style="color: #c20cb9; font-weight: bold;">basenameQ?start|stop QorderQ?QrunlevelsQ?/pre> |
1 | 实例Qupdate-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 . |
解析Q表C在2???q四个运行别中Q由到大,W?0个开始运行apachectlQ在 0 1 6q?个运行别中Q第20个关闭apachectl。这是合qv来的写法Q注意它?个点P效果{于下面ҎQ?/p>
1 | update-rc.d apachectl defaults |
update-rc.d A defaults 80 20 |
1 | update-rc.d Q?span style="color: #c20cb9; font-weight: bold;">basenameQ?defaults 90 |
rcconfQ?/p>
功能更全的:sysv-rc-conf
sudo apt-get install sysv-rc-conf
q行Qsysv-rc-conf
q个改v来很单,自己试一下就知道?
2,
直接?etc/rc0.d ~ /etc/rc6.d?etc/rcS.d下的东西QS开头的表示启动QK开头的表示不启动,
例如Q想关闭vsftpd的开动启动,只需sudo mv /etc/rc2.d/S20vsftpd /etc/rc2.d/K20vsftpd可以了?nbsp;
q条命o的用意就是利用mv的重命名功能?/p>
3,chkconfig,q种Ҏ在redhat,Debian里面比较常用,在fedora和ubuntu里面用方?比较?但是学习一下这U方法也是不错的?/p>
但在ubuntu下这个命令没有redhat好用,老是出错.
了,q是直接看一下redhat里面chkconfig的用法吧.
1,chkconfig --level [0123456] [service name] [on|off]
chkconfig --level 23 dhcp3-server off ----讑֮dhcp server服务在level2,3下关?
2,chkconfig --list 查看服务的自动开启状?/p>
3,chkconfig --add 增加一个服务给chkconfig来管?但是该服务必d/etc/init.d?.
例子,
1,gedit /etc/init.d/test
chkconfig:[runlevels] [start number] [stop number]
chkconfig: 23 80 70
其中start number 代表S80test
stop number 代表K70test
2,chkconfig --add test
3,chkconfig --list test
test 0:off 1:off 2:on 3:on 4:off 5:off 6:off
4,check /etc/rc.d/下的案
find /etc/rc.d -type l | grep 'test' |sort
/etc/rc.d/rc0.d/K70test
/etc/rc.d/rc1.d/K70test
/etc/rc.d/rc2.d/S80test
/etc/rc.d/re3.d/S80test
/etc/rc.d/rc4.d/K70test
/etc/rc.d/rc5.d/K70test
/etc/rc.d/rc6.d/K70test
/etc/rc.d/rc7.d/K70test
-type l代表“q接文g”
4,chkconfig --del 删除一个给chkconfig理的服?br />
5,昄目前run level 2为启动的服务
chkconfig --list | grep '3:on'
mysql安装Z么大部分使用二进制安装。而不是源码手动去~译Q?br />
mysql使用的glibcq行开发的。glibc库是一个底层api,所以只要是linuxQ都会有glibc库。所以,mysql安装不需要考虑环境是否W合要求。移植性很方便。直接将~译好的二进制代码复制到另外一个机器上Q也是可以用的?br />
?理性东西:一般在linux下安装一个YӞ不同软g所需要的函数库不同。于是会遇到一个现?一个Y件复制到另外一个^台可能无法运行。安装Y仉要先 侦测环境是Z此考虑。因为mysql使用的是通用的glibc函数库。没有对其他东西的依赖性。所以,从一个^台复制到另外一个^台能够通用。ƈ不需 要去侦测环境。直接用编译好的二q制卛_
手动~译安装Q显得步骤麻烦。基于mysql的特?二进制安装完全可以?/p>
?mysql5.5安装的时候,需要用到cmake命oQ所以需要保证你的机器上安装了该命o。没有的话,q要d装该cmake。也昑־ȝ。我暂时不想d装最新版本的了?br />
如果使用二进制安装升U怎么q行Q?br />
升获取的还是二q制压羃包。那么,直接指向目录切换到新的目录卛_?br />
不需要涉及到像php一P手动~译可以辑ֈ自己定制模块的好处。而mysql安装的时候不需要涉及到模块
mysql官方安装方式Q二q制安装?/p>
实践q程
大致思\是Q解压二q制文g攑ֈ指定的目录。然后安装基本的数据?权限斚w会用到?br />
然后Q启动mysqlp了?br />
W一步:创徏一个用L和用戗?br />
l名和用户名的名字都为mysql?br />
命oQ?.groupadd mysql
2.useradd -r -g mysql mysql
W二?解压二进制压~包?br />
一般放?/usr/local/src"目录下去?br />
l果会变?/usr/local/src/mysql安装目录
有很多种方式。一般可以直接进去要解压要存攄目录?br />
q行命o:tar zxvf 压羃包源 注释Q第二个参数可以填要解压到的位置。第二个参数不填Q就会将压羃包源解压到运行tar命o的当前目录。一般都是用这U特性进行解?你要解压到哪里就先进入哪里运行tar命o?br />
W三?建立一个Y链接?br />
?usr/local"下徏立一个Y链接(自己定义名ؓmysql)。Y链接的目录是Z指向"/usr/local/src/mysql安装目录"
命oQln -s /usr/local/src/mysql安装目录 /usr/local/mysql 参数说明Q?s参数表示建立软链?br />
去local目录下查看,看是否成功生成了一个Y链接。?ls -al"查看Q特Ҏ软连接上会有个箭头符受?br />
其实q一步就是ؓ了提供一U快h作的方式。其实不建立软连接也是可以用的,Z么要q样做?
升理有用Q新版本单独建立一个目录存攄。假如你升mysql了。只要将q个软连接指向的目录修改卛_?br />
W四?权限查与修改
主要是保?mysql安装目录"的所有者ؓmysql用户Q所属组也ؓmysqll?br />
1.chown -R mysql . //当前目录的所有者改为mysql用户 要加?R参数。这个参数表C@环遍历子节点。子节点都v作用
2.chgrp -R mysql . //当前目录的所有组改ؓmysqll?br />
常见的问题:忘记加上-R参数。结果下面节Ҏ有权限。启动错误,讉K错误{等一pd的问题?br />
W五步:安装初始化数据库
q行mysql安装目录下的文g:/scripts/mysql_install_db
命o备忘Qscripts/mysql_install_db --user=mysql //q是q入mysql安装目录下进行运行的Q所以需要输入\?scripts/"
注意:必须在安装目录下执行。不能切换到scripts目录下,然后执行"./mysql_install_db --user=mysql",否则会报如下错误Q?/p>
FATAL ERROR: Could not find ./bin/my_print_defaults
因ؓ脚本mysql_install_db里面所使用的是q种形式的相对\?./bin/my_print_defaults",所以必L?mysql安装目录"下,才能扑־到所需文g?/p>
W二ơ试验的时候,q报Z个错误:./bin/my_print_defaults: cannot execute binary file
W六步:my.cnf配置文g拯
my.cnf文gUdetc/目录下去?br />
命oQcp support-files/my-medium.cnf /etc/my.cnf
W七步:启动mysql
马上启动mysql的命令是Qbin/mysqld_safe --user=mysql & //"&"表示在后台运?br />
q里使用&的经验备忘:执行上面命o后,一直定在一个地斏V没有Q何反应了。ƈ没有报错信息。还是成功的。此时用ctrl+c。然后去看看
之后Q想让服务器启动的时候就跟着启动mysql服务器,在一个目录下放一个文Ӟ
cp support-files/mysql.server /etc/init.d/mysql.server
support-files/mysql.server在二q制安装目录下可以找到的?br />
完成后进行的步骤Q?br />
W一步:如何查看mysql是否安装成功?br />
一个方法是Q去查看3306端口是否开?br />
命oQnetstat -ntl 可以列出所有侦听的端口
W二个方?使用mysql命oq接一ơ服务器
命o: mysql -u root
技巧:Z省去每次执行客户端都要进入目录的ȝ。将客户端的路径加入环境变量中去?br />
shell命oQexport PATH=$PATH:/usr/local/src/mysql-5.1/bin/
export命o备忘: export 变量?变量|q里变量名是PATH 变量D|成在原来的$PATH基础上加,有多个?那么g间以分号":"隔开?br /> q样Q在L路径中。都可以通过:"mysql -u 用户?-p" 的Ş式用客L了?/p>
所遇问题ȝ
W一个问题:
问题描述QSQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/usr/local/mysql/tmp/mysql.sock'
问题l验Q?br />
不能通过 '/tmp/mysql.sock'q到服务器,而php标准配置正是用过'/tmp/mysql.sock'
1.php.ini中可以配|通过哪个sock去连接mysql
2.而mysql的配|文件中也可以自由配|用哪个位|的sock文g
错误提示中显CZ错误2002受结合手册如下说明:
错误Q?002 (CR_CONNECTION_ERROR)
消息Q不能通过套接?%s' (%d)q接到本地MySQL服务器?br />
W二个问题:权限问题?br />
解决问题的经验是Q如果遇到启动mysql错误。首先应该去看看权限是否有。设|对了没?br />
比如启动使用"service mysqld start"常常看到如下错误提示Q?br />
mysqld_safe Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
110306 23:17:20 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
110306 23:17:20 mysqld_safe mysqld from pid file /usr/local/mysql/data/localhost.localdomain.pid ended
看不懂意思。这些信息会在data/*.err文g中记录的。不知道上述报错信息的原因?br />
查看目录下的子节点,发现所有者和所属组q不都是mysql。我直接讄好目录的所有者和所属组都是mysql后。就行了?/p>
shell>groupadd mysql
shell>useradd -r -g mysql mysql
shell>cd /usr/local
shell>tar zxvf
/path/to/mysql-VERSION-OS
.tar.gz
shell>ln -s
full-path-to-mysql-VERSION-OS
mysql
shell>cd mysql
shell>chown -R mysql .
shell>chgrp -R mysql .
shell>scripts/mysql_install_db
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data--user=mysql
shell>chown -R root .
shell>chown -R mysql data
# Next command is optional
shell>cp support-files/my-medium.cnf /etc/my.cnf
shell>bin/mysqld_safe
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data--user=mysql &
# Next command is optional
shell>cp support-files/mysql.server /etc/init.d/mysql.server
启动后的日志写在/var/log/mysql/error.log文g下,可直接到q个文g下去查看?
安装成功?/p>
然后要配|环境变?/p>
在文件中d
然后修改W二个文?/p>
在文件中最后一行的前面d
׃ubuntu中可能会有默认的jdkQ如openjdkQ所以,Z佉K认用的是我们安装的jdkQ还要进行如下工作?
执行
通过q一步将我们安装的jdk加入java选单?
然后执行
通过q一步选择pȝ默认的jdk
q样Q再在shell中输?/p>
保存退出,输入以下命o使之立即生效?/p>
Vi 在初始启动后首先q入~辑模式Q当用户在编辑模式下键入 i, a, o {命令之后,可进入插入模式;键入 : 可进入命名模式。在插入模式下,用户随后输入的,?Esc 之外的Q何字W均被看成是插入到~辑~冲Z的字W。按 Esc 之后Q从插入模式切换到编辑模式?
要对正文内容q行修改Q首先必L光标Ud到指定位|。移动光标的最单的方式是按键盘的上、下、左?br />右箭头键。除了这U最原始的方法之外,用户q可以利?vi 提供的众多字W组合键Q在正文中移动光标,q?br />速到达指定的行或列,实现定位。例如:
k、j、h、l 功能分别{同于上、下、左、右头?br />Ctrl+b 在文件中向上Ud一(相当?PageUp 键)
Ctrl+f 在文件中向下Ud一(相当?PageDown 键)
H 光标移到屏q的最上行QHighestQ?br />nH 光标移到屏q的W?n ?br />2H 光标移到屏q的W?2 ?br />M 光标移到屏q的中间QMiddleQ?br />L 光标移到屏q的最下行QLowestQ?br />nL 光标移到屏q的倒数W?n ?br />3L 光标移到屏q的倒数W?3 ?br />w 在指定行内右Ud标,C一个字的开?br />e 在指定行内右Ud标,C个字的末?br />b 在指定行内左Ud标,到前一个字的开?br />0 数字0Q左Ud标,到本行的开?br />$ 右移光标Q到本行的末?br />^ Ud光标Q到本行的第一个非I字W?br />
光标定位于文g内指定位|后Q可以用其他字符来替换光标所指向的字W,或从当前光标位置删除一个或?br />个字W。例如:
rc ?c 替换光标所指向的当前字W?br />nrc ?c 替换光标所指向的前 n 个字W?br />5rc ?c 替换光标所指向的前 5 个字W?br />x 删除光标所指向的当前字W?br />nx 删除光标所指向的前 n 个字W?br />3x 删除光标所指向的前 3 个字W?br />dw 删除光标右侧的字
ndw 删除光标右侧?n 个字
3dw 删除光标右侧?3 个字
db 删除光标左侧的字
ndb 删除光标左侧?n 个字
5db 删除光标左侧?5 个字
dd 删除光标所在行Qƈ去除I隙
ndd 删除 n 行内容,q去除空?br />3dd 删除 3 行内容,q去除空?br />
从正文中删除的内容(如字W、字或行Qƈ没有真正丢失Q而是被剪切ƈ复制C一个内存缓冲区中。用户可
其_脓到正文中的指定位|。完成这一操作的命令是Q?br />p 写字母 pQ将~冲区的内容_脓到光标的后面
P 大写字母 PQ将~冲区的内容_脓到光标的前面
如果~冲区的内容是字W或字,直接_脓在光标的前面或后面;如果~冲区的内容为整行正文,则粘贴在当前
光标所在行的上一行或下一行?br />注意上述两个命o中字母的大小写。vi ~辑器经总一对大、小写字母(?p ?PQ来提供一对相似的功能
。通常Q小写命令在光标的后面进行操作,大写命o在光标的前面q行操作?br />有时需要复制一D|文到C|,同时保留原有位置的内宏V这U情况下Q首先应当把指定内容复制Q而不?br />剪切Q到内存~冲区。完成这一操作的命令是Q?br />yy 复制当前行到内存~冲?br />nyy 复制 n 行内容到内存~冲?br />5yy 复制 5 行内容到内存~冲?br />
和许多先q的~辑器一Pvi 提供了强大的字符串搜索功能。要查找文g中指定字或短语出现的位置Q可?br />?vi 直接q行搜烦Q而不必以手工方式q行。搜索方法是Q键入字W?/ Q后面跟以要搜烦的字W串Q然?br />按回车键。编辑程序执行正向搜索(x文g末尾方向Q,q在扑ֈ指定字符串后Q将光标停到该字W串?br />开_键入 n 命o可以l箋执行搜烦Q找一字符串下ơ出现的位置。用字符 ? 取代 / Q可以实现反?br />搜烦Q朝文g开头方向)。例如:
/str1 正向搜烦字符?str1
n l箋搜烦Q找?str1 字符串下ơ出现的位置
?str2 反向搜烦字符?str2
无论搜烦方向如何Q当到达文g末尾或开头时Q搜索工作会循环到文件的另一端ƈl箋执行?br />
在编辑文的q程中,为消除某个错误的~辑命o造成的后果,可以用撤消命令。另外,如果用户希望在新
的光标位|重复前面执行过的编辑命令,可用重复命o?br />u 撤消前一条命令的l果
. 重复最后一条修Ҏ文的命o
#DEMO#
在编辑模式下正确定位光标之后Q可用以下命令切换到插入模式Q?br />i 在光标左侧输入正?br />a 在光标右侧输入正?br />o 在光标所在行的下一行增L?br />O 在光标所在行的上一行增L?br />I 在光标所在行的开头输入正?br />A 在光标所在行的末输入正?br />上面介绍了几U切换到插入模式的简单方法。另外还有一些命令,它们允许在进入插入模式之前首先删MD?br />正文Q从而实现正文的替换。这些命令包括:
s 用输入的正文替换光标所指向的字W?br />ns 用输入的正文替换光标右侧 n 个字W?br />cw 用输入的正文替换光标右侧的字
ncw 用输入的正文替换光标右侧?n 个字
cb 用输入的正文替换光标左侧的字
ncb 用输入的正文替换光标左侧?n 个字
cd 用输入的正文替换光标的所在行
ncd 用输入的正文替换光标下面?n ?br />c$ 用输入的正文替换从光标开始到本行末尾的所有字W?br />c0 用输入的正文替换从本行开头到光标的所有字W?br />
退出插入模式的Ҏ是,?ESC 键或l合键Ctrl+[ ?br />
#DEMO#
?vi 的命令模式下Q可以用复杂的命o。在~辑模式下键入?”,光标p到屏q最后一行,q在那里昄冒号Q此时已q入命o模式。命令模式又U“末行模式”,用户输入的内容均昄在屏q的最后一行,按回车键Qvi 执行命o?
在编辑模式下可以?ZZ 命o退?vi ~辑E序Q该命o保存Ҏ文所作的修改Q覆盖原始文件。如果只需?br />退出编辑程序,而不打算保存~辑的内容,可用下面的命令:
: q 在未作修改的情况下退?br />: q! 攑ּ所有修改,退出编辑程?br />
~辑中的每一行正文都有自q行号Q用下列命o可以Ud光标到指定行Q?br />: n 光标移到第 n ?br />命o模式下,可以规定命o操作的行可围。数值用来指定绝对行P字符?”表C光标所在行的行P字符
W?”表C正文最后一行的行号Q简单的表达式,例如?+5”表C当前行往下的W?5 行。例如:
:345 光标移到第 345 ?br />:345w file 第 345 行写?file 文g
:3,5w file 第 3 行至W?5 行写?file 文g
:1,.w file 第 1 行至当前行写?file 文g
:.,$w file 当前行x后一行写?file 文g
:.,.+5w file 从当前行开始将 6 行内容写?file 文g
:1,$w file 所有内容写?file 文gQ相当于 :w file 命o
在命令模式下Q允总文g中读取正文,或将正文写入文g。例如:
:w 编辑的内容写入原始文gQ用来保存编辑的中间l果
:wq 编辑的内容写入原始文gq出编辑程序(相当?ZZ 命oQ?br />:w file 编辑的内容写入 file 文gQ保持原有文件的内容不变
:a,bw file 第 a 行至W?b 行的内容写入 file 文g
:r file d file 文g的内容,插入当前光标所在行的后?br />:e file ~辑新文?file 代替原有内容
:f file 当前文仉命名?file
:f 打印当前文g名称和状态,如文件的行数、光标所在的行号{?br />
l出一个字W串Q可以通过搜烦该字W串到达指定行。如果希望进行正向搜索,待搜烦的字W串|于两个?br />/”之_如果希望反向搜烦Q则字W串攑֜两个?”之间。例如:
:/str/ 正向搜烦Q将光标Ud下一个包含字W串 str 的行
:?str? 反向搜烦Q将光标Ud上一个包含字W串 str 的行
:/str/w file 正向搜烦Qƈ第一个包含字W串 str 的行写入 file 文g
:/str1/,/str2/w file 正向搜烦Qƈ包含字W串 str1 的行臛_含字W串 str2 的行?br /> ?file 文g
利用 :s 命o可以实现字符串的替换。具体的用法包括Q?br />:s/str1/str2/ 用字W串 str2 替换行中首次出现的字W串 str1
:s/str1/str2/g 用字W串 str2 替换行中所有出现的字符?str1
:.,$ s/str1/str2/g 用字W串 str2 替换正文当前行到末尾所有出现的字符?str1
:1,$ s/str1/str2/g 用字W串 str2 替换正文中所有出现的字符?str1
:g/str1/s//str2/g 功能同上
从上q替换命令可以看刎ͼg 攑֜命o末尾Q表C对搜烦字符串的每次出现q行替换Q不?gQ表C只Ҏ?br />字符串的首次出现q行替换Qg 攑֜命o开_表示Ҏ文中所有包含搜索字W串的行q行替换操作?br />
在命令模式下Q同样可以删除正文中的内宏V例如:
:d 删除光标所在行
:3d 删除 3 ?br />:.,$d 删除当前行至正文的末?br />:/str1/,/str2/d 删除从字W串 str1 ?str2 的所有行
vi 在编辑某个文件时Q会另外生成一个时文Ӟq个文g的名U通常?. 开_q以 .swp l尾。vi ?br />正常退出时Q该文g被删除,若意外退出,而没有保存文件的最C改内容,则可以用恢复命令:
:recover 恢复文g
也可以在启动 vi 时利?-r 选项?br />