Centos系统服务常见FQA汇总
1.1 文档目的
本文目的提高自己文档的写作能力及排版能力,加强上课所讲的内容得以锻炼也方便自己以后查阅特写此文档。
1.2 文档内容
Linux工作以及学习中的FAQ汇总!
1.3 磁盘分区问题汇总
1.3.1 分区完后当我们在执行partprobe通知内核分区变化时会提示以下错误信息?
[[email protected] ~]# partprobe
Warning: WARNING: the kernel failed tore-read the partition table on /dev/sda (Device or resource busy). As a result, it may not reflect all of yourchanges until after reboot.
提示所设备正在忙,其实说的是系统本身现在使用的设备也就是/dev/sda你只要在执行partprobe命令时后面加上你的告知内核的设备名字就可以了!例如我们要将/dev/sdb然后执行下面的命令即可就不会报上面的错误!
[[email protected] ~]# partprobe /dev/sdb
1.4 NFS服务问题汇总
1.4.1 客户端挂载时端口无法映射?
报错信息如下:此错误原因是服务端的防火墙服务没有关闭
[[email protected] ~]# showmount -e192.168.88.115
clnt_create: RPC: Port mapper failure -Unable to receive: errno 113 (No route to host)
1.4.2 clnt_create:RPC: Program not registered(出现此问题的原因是因为nfs服务先启动的而RPC服务后启动的,NFS服务是向rpcbind服务注册的,所以rpcbind服务需要先启动否则nfs没地方注册?
- 先启动rpcbind服务/etc/init.d/rpcbind start(服务端)
- 在次启动nfs服务/etc/init.d/nfs start
1.4.3 在执行mount -t nfs 192.168.88.115:/data /mnt这个命令时提示以下错误信息mount.nfs: access deniedby server whilemounting192.168.88.115:/data? mount.nfs: requested NFSversion or transport protocol is not supported??
- 发生此问题的原因检查服务端/etc/exportfs目录下的IP地址是否对
- 在客户端挂载的时候有可能是因为你写的IP地址错误造成的
- 还有以个原因是你在客户端挂载的时候把服务端共享的目录名字写错了,(此问题的原因跟权限一点关系都没有切记%97都是以上提的那3点原因)
1.4.4 如果卸载的时候提示:umount /mnt: device isbusy?
需要退出自动挂载目录在进行卸载,或者是NFS Server 宕机了需要强制卸载用umount -lf /mnt
1.4.5 如果客户端没有安装nfs-utils时当你挂载的时候会提示以下错误信息?
[[email protected] ~]# mount –t nfs 192.168.88.115:/data /mnt
Mount: wrong fs type,bad option, badsuperblock on 192.168.88.115:/data/
Missing codepange or helper program,orother error
(for serveralfilesystems(e.g.nfs,cifs))you might need a
/sbin/mount.<type>helper program)
In some cases useful info is found insyslog-try dmesg tial or so
解决办法安装nfs-utils服务不用启动它然后解决了
[[email protected] ~]# yum –y installnfs-utils
1.5 SSH服务问题汇总
1.5.1 远程连接或传送文件慢的原因?
- 在服务端更改/etc/ssh/sshd_config文件中的配置内容如下:
122 UseDNS no
81 GSSAPIAuthentication no
Ssh -v [email protected]可以查看慢的细节
1.6 vi编辑器问题汇总
1.6.1 vi编辑文件的时候提示以下错误?
[[email protected] ~]# vim/etc/rsyncd.conf
E325: ATTENTION
Found a swap file by the name"/etc/.rsyncd.conf.swp"
owned by: root dated: Mon Feb 2 23:51:19 2015
file name: /etc/rsyncd.conf
原因是因为第一次编辑/etc/rsyncd.conf配置文件时没有正常保存退出当你在次编辑这个文件时会提示上面的错误:
解决办法:
删除/etc/目录下生成的那个临时文件在重新编辑/etc/rsyncd.conf文件就OK了!
[[email protected] ~]# rm –rf /etc/.rsyncd.conf.swp
1.7 Rsync服务问题汇总
1.7.1 客户端只授权密码但是没有给密码文件权限错误?
这个是授权密码到/etc/rsync.password文件中但是没有给密码权限
[[email protected] ~]# echo"oldboy">/etc/rsync.password
[[email protected] ~]#rsync -avz/data/ [email protected]::oldboy --password-file=/etc/rsync.password
password file must not beother-accessible
continuing without password file
Password:
@ERROR: auth failed on module oldboy
rsync error: error startingclient-server protocol (code 5) at main.c(1503) [sender=3.0.6]
解决办法:
给密码文件授权
[[email protected] ~]# chmod 600/etc/rsync.password
1.7.2 服务端防火墙没有关闭导致的错误?
[[email protected] ~]#rsync -avz /data/[email protected]::oldboy --password-file=/etc/rsync.password
解决办法:
在服务端关闭防火墙
[[email protected] ~]#/etc/init.d/iptables stop
1.7.3 服务端的path = /oldboy/的目录没有创建挡在客户端推送文件的时候报错信息:
解决办法:
在服务端创建oldboy目录
[[email protected] ~]# mkdir /oldboy
1.7.4 服务端path = /oldboy/的目录没有修改属组和属主报错信息如下:
解决办法:
给/oldboy目录修改rsync服务对应的用户我们这里rsync服务对应的用户就是rsync,在服务端操作
[[email protected] ~]# chownrsync.rsync /oldboy/
1.7.5 服务端的Rsync服务没有开启报错信息?
解决办法:
客户端用telnet检查rsync的端口是否可以连接提示失败我们可以确定是rsync服务本身的原因,在服务端开启rsync服务即可
[[email protected] ~]# telnet10.0.0.128 873
Trying 10.0.0.128...
telnet: connect to address 10.0.0.128:Connection refused
[[email protected] ~]# rsync --daemon
1.7.6 Rsync客户端向服务端推送文件时报如下错误信息:
@ERROR: chdir failed
rsync error: error startingclient-server protocol (code 5) at main.c(1503) [sender=3.0.6]
错误原因:模块名字和创建目录的名字不一样所以导致客户端推送时报以下错误信息错误的名字
正确的名字
1.7.7 客户端向服务端推送文件时提示如下错误?
@ERROR: auth failed on module gong
rsync error: error starting client-serverprotocol (code 5) at main.c(1503) [sender=3.0.6]
解决办法:
原因是因为在rsync.password文件中同时存在两个密码导致无法知道到底是哪个,删除没用的密码即可!
[[email protected] data]# cat/etc/rsync.password
oldboy
jing
1.7.8 在客户端向服务端推送文件时提示如下错误?
sending incremental file list
ERROR: module is read only
rsync error: syntax or usage error (code1) at main.c(866) [receiver=3.0.6]
rsync: read error: Connection reset bypeer (104)
rsync error: error in rsync protocoldata stream (code 12) at io.c(759) [sender=3.0.6]
解决办法:
在服务端的/etc/rsyncd.conf目录中添加read only = false,原因是在服务端的这个配置文件里面没有给可写权限导致的。
1.8 计划任务crontab保存时如下错误信息
"/tmp/crontab.xg7Add" 5L, 127Cwritten
crontab: installing new crontab
"/tmp/crontab.xg7Add":4: badhour
errors in crontab file, can‘t install.
Do you want to retry the same edit?
原因是因为在写计划任务时时间格式不对导致的
#############
00 99 00 999999
1.9 Nginx服务问题汇总
1.9.1 启动Nginx服务时如下错误
[[email protected]erver nginx-1.6.2]#/application/nginx/sbin/nginx
/application/nginx/sbin/nginx: errorwhile loading shared libraries: libpcre.so.1: cannot open shared object file:No such file or directory
解决办法查找libpcre.so.1所在路径将路径添加到/etc/ld.so.conf中
[[email protected] nginx-1.6.2]# find /-name "libpcre.so.1"
/usr/local/lib/libpcre.so.1
[[email protected] nginx-1.6.2]# cat/etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib/
[[email protected] nginx-1.6.2]#ldconfig
1.9.2 启动Nginx服务时如下错误
[[email protected] nginx-1.6.2]#/application/nginx/sbin/nginx
nginx: [emerg]getpwnam("nginx") failed
没有创建用户导致的报错,创建完nginx用户即可解决该问题
[[email protected] nginx-1.6.2]# useraddnginx -s /sbin/nologin -M
1.9.3 安装pcre时执行make时提示如下错误
解决办法:
安装gcc
[[email protected] ~]# yum -y installgcc-c++
1.9.4 启动Nginx服务时提示
[[email protected] nginx-1.6.2]# /application/nginx/sbin/nginx-s reload
nginx: [error] open() "/application/nginx-1.6.2/logs/nginx.pid"failed (2: No such file or directory)
原因是Nginx服务本身没有启动解决办法如下:
[[email protected] conf]#/application/nginx/sbin/nginx
[[email protected]]#/application/nginx/sbin/nginx -s reload
1.9.5 Nginx访问网站提示如下错误
这个错误是因为自己配置失误造成的在这里我特意记录下导致错误的原因
[[email protected] ~]# cd/application/nginx/conf/
[[email protected] conf]# vim nginx.conf
以下这个是配置错误的选项因为在html后面没有添加blog.etiantian.org网站的根目录所以导致错误
正确配置如下
[[email protected] ~]# cd/application/nginx/html/blog
[[email protected] blog]# ls
index.html
[[email protected] ~]# cd/application/nginx/conf/
[[email protected] conf]# vim nginx.conf
检查语法
[[email protected] conf]#/application/nginx/sbin/nginx –t
重新启动Nginx服务
[[email protected] conf]#/application/nginx/sbin/nginx -s reload
验证结果
1.9.6 安装Discuz论坛时提示502错误?
故障原因:
php-fpm没有启动导致此问题.
解决办法:
[[email protected]_Web02 ~]#/application/php/sbin/php-fpm
1.10 虚拟机问题
1.10.1 虚拟机开机启动后提示如下错误
解决办法:
笔记本是联想T420开机按F1进入
BIOS然后按照下边操作
F10保存退出重新启动即可!
1.10.2 在VMware中打开已经存在的虚拟机没有反映
故障原因:
用services.msc查看发现VMware Workstation Server这个服务没有启动造成的
解决办法:
一个很幼稚的问题但是从来没有想过这的原因,启动VMware Workstation Server服务即可!
1.10.3 克隆的虚拟机克隆完后启动网卡时提示device eth0 does not seemto be present delaying initialization?
故障原因:
因为克隆的机器MAC地址导致的
解决办法:
之前的解决办法是将rm -rf /etc/udev/rules.d/70-persistent-net.rules文件删除即可,今次删除此文件后重新启动主机开机后再次重启网卡还是报错,后来发现这个文件根本没有删除,登陆到70-persistent-net.rules文件中查看发现该配置文件中的MAC地址与eth0配置文件中的MAC地址不一致.
没修改之前的eth0网卡MAC地址
修改之后的eth0网卡的MAC地址,将MAC地址修改与70-persistent-net.rules文件中的eth0网卡中的MAC地址一样后删除70-persistent-net.rules,重新启动虚拟机即可解决!
1.11 Mysql数据库服务问题汇总
1.11.1 初始化数据库在tmp目录下无权创建
解决办法:
1.11.2 初始化数据库mysql无法解析
解决办法:修改主机名的解析和uname -n一样
1.11.3 启动mysql数据库报如下错误信息:
[[email protected] support-files]#/etc/init.d/mysqld start
Starting MySQL ERROR! Couldn‘t findMySQL manager (@[email protected]/mysqlmanager) or server (@[email protected]/mysqld_safe)
解决办法:
[[email protected] support-files]# vim/etc/init.d/mysqld
46 basedir=/application/mysql/
47 datadir=/application/mysql/data
1.11.4 直接输入mysql进入数据库提示找不到命令
[[email protected] support-files]# mysql
-bash: mysql: command not found
第一种解决办法输入mysql数据库的全路径
[[email protected] support-files]#/application/mysql/bin/mysql
第二种解决办法将mysql路径加入到PATH路径下面
[[email protected] support-files]# vim/etc/profile
PATH="/application/mysql/bin/:$PATH"
alias grep=‘grep --color=auto‘
让配置文件立即生效
[[email protected] support-files]# ./etc/profile
[[email protected] support-files]# source/etc/profile
1.11.5 启动Mysql数据库时报错如下
[[email protected] ~]# /etc/init.d/mysqld start
Starting MySQL.. ERROR! The server quit without updating PID file(/var/lib/mysql/zibbix.pid).
解决办法:
[[email protected] ~]# cp /application/mysql/support-files/my-small.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf‘? y
[[email protected] ~]# /etc/init.d/mysqld start Starting MySQL.. SUCCES
1.11.6 安装好mysql数据库后无法进入数据库
[[email protected] ~]# mysql
ERROR 2002 (HY000): Can‘t connect to local MySQL server throughsocket ‘/tmp/mysql.sock‘ (2)
解决办法:
1、Mysql数据库服务没有启动
2、cp /application/mysql/support-files/my-small.cnf /etc/my.cnf
1.11.7 创建数据库无法创建
[[email protected] ~]# mysql –uroot –p12156
在数据库里边创建数据库的时候报错
mysql> create database hdwiki;
ERROR 1006 (HY000): Can‘t create database ‘hdwiki‘ (errno: 13)
解决办法:
数据库目录的属主和属组的权限是nginx不是mysql服务的用户所以会报以上的错误信息,将数据库的目录属主改为mysql服务用户就OK了!
[[email protected] ~]# ls -dl/application/mysql/data/
drwxr-xr-x. 8 nginx nginx 4096 Feb 1200:38 /application/mysql/data/
[[email protected] ~]# chown -R mysql.mysql/application/mysql/data/
1.11.8 安装完mysql执行mysql进入数据时候报错
ERROR 2002 (HY000): Can‘t connect to local MySQLserver through socket ‘/application/mysql-5.5.32/tmp/mysql.sock‘ (2)
错误原因:
由于初始化数据库没有初始化好.
解决办法:
删除mysql/data下文件
[[email protected] ~]# rm –rf /application/mysql/data
停止mysql数据库服务
[[email protected] ~]# killall mysqld
重新初始化数据库
[[email protected] ~]# /application/mysql/scripts/mysql_install_db--basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
启动mysql即可登录
[[email protected] ~]# /etc/init.d/mysqld start
1.11.9 编译安装Mysql数据库5.5.32执行cmake报错如下
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readlineNaNake:83 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package nameis libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readlineNaNake:118 (FIND_CURSES)
cmake/readlineNaNake:214 (MYSQL_USE_BUNDLED_READLINE)
CMakeLists.txt:269 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
故障原因:
缺少curses导致的
解决办法:
[[email protected] ~]# yum installncurses-devel –y
网上别人遇到同样的问题安装了ncurses还是没有解决,查找到ncurses库目录,然后用-D参数定义宏,指定头文件和库的所在目录.(本人安装了ncurses就OK了只是在网上看到了顺便把此错误记录下)
cmake . -DCURSES_LIBRARY=/usr/lib64/-DCURSES_INCLUDE_PATH=/usr/include/
http://www.wudiweb.com/tech/693914