Centos系统服务常见FAQ汇总(上)

                             Centos系统服务常见FAQ汇总

1.1 文档目的

      本文目的提高自己文档的写作能力及排版能力,加强上课所讲的内容得以锻炼也方便自己以后查阅特写此文档。

1.2 文档内容

      Linux工作以及学习中的FAQ汇总!

1.3 磁盘分区问题汇总

1.3.1 分区完后当我们在执行partprobe通知内核分区变化时会提示以下错误信息?

[root@c66-moban ~]# 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然后执行下面的命令即可就不会报上面的错误!

[root@c66-moban ~]# partprobe /dev/sdb

1.4 NFS服务问题汇总

1.4.1 客户端挂载时端口无法映射?

报错信息如下:此错误原因是服务端的防火墙服务没有关闭

[root@NFSClient ~]# 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时当你挂载的时候会提示以下错误信息?

[root@NFSClient ~]# mount �Ct 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服务不用启动它然后解决了

[root@NFSClient ~]# yum �Cy 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编辑文件的时候提示以下错误?

[root@Rsync-Server-B ~]# 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了!

[root@Rsync-Server-B ~]# rm �Crf  /etc/.rsyncd.conf.swp

1.7 Rsync服务问题汇总

1.7.1 客户端只授权密码但是没有给密码文件权限错误?

这个是授权密码到/etc/rsync.password文件中但是没有给密码权限

[root@Rsync-Server-B ~]# echo"oldboy">/etc/rsync.password

[root@Rsync-Server-B ~]#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]

解决办法:

给密码文件授权

[root@Rsync-Server-B ~]# chmod 600/etc/rsync.password

1.7.2 服务端防火墙没有关闭导致的错误?

[root@Rsync-Server-B ~]#rsync -avz /data/[email protected]::oldboy --password-file=/etc/rsync.password

解决办法:

在服务端关闭防火墙

[root@Rsync-Server-A ~]#/etc/init.d/iptables stop

 

1.7.3 服务端的path = /oldboy/的目录没有创建挡在客户端推送文件的时候报错信息:

 wKiom1VNecXjt1cYAACFbbSRo4U032.jpg   

解决办法:

在服务端创建oldboy目录

[root@Rsync-Server-A ~]# mkdir /oldboy

1.7.4 服务端path = /oldboy/的目录没有修改属组和属主报错信息如下:

wKiom1VNegGwbnziAACof9hV8PE240.jpg

解决办法:

/oldboy目录修改rsync服务对应的用户我们这里rsync服务对应的用户就是rsync,在服务端操作

[root@Rsync-Server-A ~]# chownrsync.rsync /oldboy/

1.7.5 服务端的Rsync服务没有开启报错信息?

wKioL1VNe6rwQXVxAACGZY1cT1c013.jpg

解决办法:

客户端用telnet检查rsync的端口是否可以连接提示失败我们可以确定是rsync服务本身的原因,在服务端开启rsync服务即可

[root@Rsync-Client-B ~]# telnet10.0.0.128 873

Trying 10.0.0.128...

telnet: connect to address 10.0.0.128:Connection refused

[root@Rsync-Server-A ~]# 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]

wKiom1VNen-iYFVzAACUFxhXhzg624.jpg

错误原因:模块名字和创建目录的名字不一样所以导致客户端推送时报以下错误信息错误的名字

wKiom1VNeqzThSUiAABqjxOjaOY048.jpg


正确的名字

wKiom1VNetLBmvzDAABV2wSs3N8279.jpg


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文件中同时存在两个密码导致无法知道到底是哪个,删除没用的密码即可!

[root@Rsync-Client-B 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服务时如下错误

[root@Rsync-Server 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

[root@Rsync-Server nginx-1.6.2]# find /-name "libpcre.so.1"

/usr/local/lib/libpcre.so.1

[root@Nginx-Server nginx-1.6.2]# cat/etc/ld.so.conf

include ld.so.conf.d/*.conf

/usr/local/lib/

[root@Rsync-Server nginx-1.6.2]#ldconfig


1.9.2   启动Nginx服务时如下错误

[root@Nginx-Server nginx-1.6.2]#/application/nginx/sbin/nginx

nginx: [emerg]getpwnam("nginx") failed

没有创建用户导致的报错,创建完nginx用户即可解决该问题

[root@Nginx-Server nginx-1.6.2]# useraddnginx -s /sbin/nologin -M

1.9.3 安装pcre时执行make时提示如下错误

wKiom1VNe3OzeVvyAAC5BovVfc4343.jpg                            

解决办法:

安装gcc

[root@Nginx-Server ~]# yum -y installgcc-c++

1.9.4 启动Nginx服务时提示

[root@Nginx-Server 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服务本身没有启动解决办法如下:

[root@Nginx-Server conf]#/application/nginx/sbin/nginx

[[email protected]]#/application/nginx/sbin/nginx -s reload

1.9.5 Nginx访问网站提示如下错误

wKioL1VNfR3zWRFhAAB4Nx9h-BY686.jpg

这个错误是因为自己配置失误造成的在这里我特意记录下导致错误的原因

[root@c66-moban ~]# cd/application/nginx/conf/

[root@c66-moban conf]# vim nginx.conf

以下这个是配置错误的选项因为在html后面没有添加blog.etiantian.org网站的根目录所以导致错误

wKiom1VNe9GDcUXyAAEy2eP8f6k403.jpg

正确配置如下

[root@c66-moban ~]# cd/application/nginx/html/blog

[root@c66-moban blog]# ls

index.html

[root@c66-moban ~]# cd/application/nginx/conf/

[root@c66-moban conf]# vim nginx.conf

检查语法

[root@c66-moban conf]#/application/nginx/sbin/nginx �Ct

重新启动Nginx服务

[root@c66-moban conf]#/application/nginx/sbin/nginx -s reload

wKioL1VNfXnToqawAAE0jh25XnU620.jpg

验证结果

wKiom1VNfJ-jYogdAAB6LinuCoc275.jpg

1.9.6 安装Discuz论坛时提示502错误?

wKiom1VNfOvw2QwJAACOIpGdCHM850.jpg

故障原因:

php-fpm没有启动导致此问题.

解决办法:

[root@Nginx_Web02 ~]#/application/php/sbin/php-fpm


1.10 虚拟机问题

1.10.1 虚拟机开机启动后提示如下错误

解决办法:

笔记本是联想T420开机按F1进入

BIOS然后按照下边操作

wKiom1VNfwigiTENAAGznP4SmdQ436.jpg


wKiom1VNfwTw1FRtAAHGyuJ0mUM743.jpg


F10保存退出重新启动即可!

wKioL1VNgLOB-qc_AAF6df1OLiM853.jpg

1.10.2 VMware中打开已经存在的虚拟机没有反映

wKiom1VNf3PAhOPvAACFstHyIcA802.jpg


故障原因:

services.msc查看发现VMware Workstation Server这个服务没有启动造成的

wKiom1VNf8ajON37AAAm5vuSrqA492.jpg


解决办法:

一个很幼稚的问题但是从来没有想过这的原因,启动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地址不一致.

wKioL1VNgXmQGRmDAAEQAYVhGeU283.jpg


没修改之前的eth0网卡MAC地址

wKiom1VNgCrwD_ugAADPkXIHlyI828.jpg


修改之后的eth0网卡的MAC地址,MAC地址修改与70-persistent-net.rules文件中的eth0网卡中的MAC地址一样后删除70-persistent-net.rules,重新启动虚拟机即可解决!

wKioL1VNgcjBqzIEAADHPL802Ok933.jpg

1.11   Mysql数据库服务问题汇总

1.11.1  初始化数据库在tmp目录下无权创建

wKioL1VNghCi_iKiAABc9iGMIGI461.jpg

解决办法:

wKiom1VNgLiBYKeZAABnr9MADsY856.jpg

1.11.2  初始化数据库mysql无法解析

wKiom1VNgOvhZchzAABwfusZ3dE375.jpg

解决办法:修改主机名的解析和uname  -n一样

wKioL1VNgo_CHWAvAACGXRpJ8HY990.jpg

1.11.3  启动mysql数据库报如下错误信息:

[root@Mysql support-files]#/etc/init.d/mysqld start

Starting MySQL ERROR! Couldn't findMySQL manager (@bindir@/mysqlmanager) or server (@bindir@/mysqld_safe)

解决办法:

[root@Mysql support-files]# vim/etc/init.d/mysqld

46 basedir=/application/mysql/

47 datadir=/application/mysql/data

1.11.4  直接输入mysql进入数据库提示找不到命令

[root@Mysql support-files]# mysql

-bash: mysql: command not found

第一种解决办法输入mysql数据库的全路径

[root@Mysql support-files]#/application/mysql/bin/mysql

第二种解决办法将mysql路径加入到PATH路径下面

[root@Mysql support-files]# vim/etc/profile

PATH="/application/mysql/bin/:$PATH"

alias grep='grep --color=auto'

让配置文件立即生效

[root@Mysql support-files]# ./etc/profile

[root@Mysql support-files]# source/etc/profile

1.11.5  启动Mysql数据库时报错如下

[root@zibbix ~]# /etc/init.d/mysqld start

Starting MySQL.. ERROR! The server quit without updating PID file(/var/lib/mysql/zibbix.pid).

解决办法:

[root@zibbix ~]# cp /application/mysql/support-files/my-small.cnf  /etc/my.cnf

cp: overwrite `/etc/my.cnf'? y

[root@zibbix ~]# /etc/init.d/mysqld start                         Starting MySQL.. SUCCES

1.11.6 安装好mysql数据库后无法进入数据库

[root@Mysql ~]# mysql

ERROR 2002 (HY000): Can't connect to local MySQL server throughsocket '/tmp/mysql.sock' (2)

解决办法:

1Mysql数据库服务没有启动

2cp /application/mysql/support-files/my-small.cnf  /etc/my.cnf

1.11.7 创建数据库无法创建

[root@Web ~]# mysql �Curoot �Cp12156

在数据库里边创建数据库的时候报错

mysql> create database hdwiki;

ERROR 1006 (HY000): Can't create database 'hdwiki' (errno: 13)

解决办法:

数据库目录的属主和属组的权限是nginx不是mysql服务的用户所以会报以上的错误信息,将数据库的目录属主改为mysql服务用户就OK了!

[root@Web ~]# ls -dl/application/mysql/data/

drwxr-xr-x. 8 nginx nginx 4096 Feb 1200:38 /application/mysql/data/

[root@Web ~]# 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下文件

[root@Mysql ~]# rm �Crf /application/mysql/data

停止mysql数据库服务

[root@Mysql ~]# killall mysqld

重新初始化数据库

[root@Mysql ~]# /application/mysql/scripts/mysql_install_db--basedir=/application/mysql --datadir=/application/mysql/data --user=mysql

启动mysql即可登录

[root@Mysql ~]# /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导致的    

解决办法:

[root@Mysql ~]# yum installncurses-devel �Cy

网上别人遇到同样的问题安装了ncurses还是没有解决,查找到ncurses库目录,然后用-D参数定义宏,指定头文件和库的所在目录.(本人安装了ncursesOK了只是在网上看到了顺便把此错误记录下)

cmake . -DCURSES_LIBRARY=/usr/lib64/-DCURSES_INCLUDE_PATH=/usr/include/

http://www.wudiweb.com/tech/693914


1.12 PHP服务问题汇总

1.12.1编译安装php报错信息如下

问题一:

configure: error: Cannot find OpenSSL's<evp.h>

解决办法:

[root@LAMP php-5.3.27]# yum -y install openssl-devel�Cy

问题二:

 wKioL1VNmVKxVMMRAABT9km5xeE882.jpg

解决办法:

[root@LAMP php-5.3.27]# yum -y installlibxslt-devel

1.12.2 编译安装php报错信息如下

make: ***[ext/fileinfo/libmagic/apprentice.lo] Error 1

解决办法:

在编译安装php执行./configure加上选项:--disable-fileinfo原因是虚拟机内存给的小造成的我们可以把虚拟机的内存给大点即可!

1.12.3 编译安装php执行make报错如下

[root@Mysql php-5.3.27]# make

/home/oldboy/tools/php-5.3.27/sapi/cli/php:error while loading shared libraries: libmysqlclient.so.18: cannot open sharedobject file: No such file or directory

make: *** [ext/phar/phar.php] Error 127

解决办法:

[root@Mysql php-5.3.27]# find / -name"libmysqlclient.so.18"

/application/mysql-5.5.32/lib/libmysqlclient.so.18

[root@Mysql php-5.3.27]# echo"/application/mysql-5.5.32/lib/" >>/etc/ld.so.conf

[root@Mysql php-5.3.27]# ldconfig

1.12.4 编译安装php执行make报错如下

[root@Mysql php-5.3.27]# make

Generating phar.phar

chmod: cannot access `ext/phar/phar.phar': No such file or directory

make: [ext/phar/phar.phar] Error 1 (ignored)

Build complete.

Don't forget to run 'make test'

解决办法:

[root@Mysql php-5.3.27]# mkdir -pext/phar/phar.phar

1.12.5 编译安装PHP报错如下

/usr/bin/ld: cannot find -lltdl

collect2: ld returned 1 exit status

make: *** [sapi/fpm/php-fpm] Error 1

缺少libtool-ltdl

解决办法:

yum install -y libtool-ltdl-devel

1.12.6 访问php页面提示下载

wKioL1VNmdSySVUIAAEdz5R_FQw954.jpg

原因是在nginx的主配置文件网站下面没有添加fastcgi所以它没办法接下php文件.

解决办法:

wKiom1VNmH-Aqs13AAE2a6krUMU471.jpg

[root@LAMP ]# /application/nginx/sbin/nginx�Ct

[root@LAMP ]# /application/nginx/sbin/nginx�Cs reload

1.12.7 访问php页面提示提示找不到wKioL1VNmiax8YzbAACnE2AWi1U222.jpg


解决办法:

wKiom1VNmOHQrusnAAGp5BjtPHU644.jpg


[root@LAMP ]# /application/nginx/sbin/nginx�Ct

[root@LAMP ]# /application/nginx/sbin/nginx�Cs reload

1.13 phpMyadmin问题汇总

1.13.1  登录phpmyadmin窗口时提示时提示 #2002无法登录 MySQL服务器,原因是我的数据库不再本机里边所以配置文件里边默认还是写的localhost,所以无法连接数据库!

解决办法:

[root@LAMP ~]# cd/data0/www/phpmyadmin/libraries/

[root@LAMP libraries]# vimconfig.default.php

125 $cfg['Servers'][$i]['host'] ='localhost';

改为

125 $cfg['Servers'][$i]['host'] ='172.16.1.4';

1.13.2  登录phpmyadmin窗口时提示phpMyAdmin错误缺少mysqli 扩展,请检查 PHP配置错误。

解决办法:

[root@LAMP ~]# cd/data0/www/phpmyadmin/libraries/

[root@LAMP libraries]# vimconfig.default.php

195 $cfg['Servers'][$i]['extension'] ='mysqli';

改为

195 $cfg['Servers'][$i]['extension'] ='mysql';


1.13.3 在登录phpmyadmin时提示错误,原因是因为认证方法设置的是cookie所以需要设置数据库密码,否则登录会提示错误。

解决办法:

245 $cfg['Servers'][$i]['auth_type'] ='cookie'; 如果这里设置的是cookie

102 $cfg['blowfish_secret'] = '12156';  这里必须写一个数据库密码否则报错

1.13.4 在等陆phpmyadmin窗口时提示1045错误无法登录

原因是数据库密码错误导致的.

1.13.5 登录phpmyadmin后提示

缺少 mcrypt 扩展,请检查 PHP 配置。


1.14 期中架构问题汇总

1.14.1 keepalived软件做高可用时,主备两端同时都产生了同一个VIP(也就是一个虚拟IP)如何解决?

Keepalived中的辅助IP就是VIP的那个IP地址。

(1)、导致裂脑发生的原因

1、高可用服务器之间心跳链路故障,导致无法相互检查心跳

2、高可用服务器上开启了防火墙,阻挡了心跳检测

3、高可用服务器上网卡地址等信息配置不正常,导致发送心跳失败

4、其他服务配置不当等原因,如心跳方式不同,心跳广播冲突,软件BUG

(2)、防止裂脑一些方案

1、加冗余线路

2、检测到裂脑时,强行关闭心跳检测(远程关闭主节点,控制电源的电路fence)

3、做好脑裂的监控报警

4、报警后,备节点在接管时设置比较长的时间去接管,给运维人员足够的时间去处理(人为处理)

5、启动磁盘锁,正在服务的一方锁住磁盘,裂脑发生时,让对方完全抢不走"共享磁盘资源"

磁盘锁存在的问题:

使用锁磁盘会有死锁的问题,如果占用共享磁盘的一方不主动"解锁"另一方就永远得不到共享磁盘,假如服务器节点突然死机或崩溃,就不可能执行解锁命令,备节点也就无法接管资源和服务了,有人在HA中设计了智能锁,正在提供服务的一方只在发现心跳全部断开时才会启用磁盘锁,平时就不上锁

lamp上面做好了Apache,mysql是做到make install,php的测试页是成功的,在另一台服务器上做了mysql分离,能登陆在测试mysql连接时显示mysql_error,测试页的连接主机改成了分离mysqlIP但是在WEA发表东西,WEB上也是有的?

1、数据库上对应用户的授权,是否允许此WEB连接

grant select,insert,update,delete,alter,create onbbs.* to bbs@'10.0.0.%' identified by '12156';

2、从此WEB服务器的命令远程连接数据库测试看是否可以连接,mysql -ubbs -p12156 -h 10.0.0.8

3web支持PHP解析,有没有php连接mysql的库

Mysql  user表里的用户删不掉问题

主机名大写或特殊符号,一般drop user  ‘用户’@‘主机名’无法删除的。

解决办法:

delete from mysql.user where user='' andhost='MySQL';

flush privileges;

drop database mysql后如何恢复?

1、有备份直接备份恢复

2、重新初始化数据库

3、如果正式环境,去一个新的服务器初始化数据库(版本相同)然后把数据库倒出来,恢复到正式库,然后手工重新授权web连接的账号

1.15 安装Zabbix监控问题汇总

1.15.1 安装zabbix报错   wKiom1VNmk7jIc9YAAH04CoYES0048.jpg

yum安装的php解决办法:

[root@zabbix etc]# yum install -yphp-bcmath

编译安装的报错解决办法:

[root@zibbix ~]# find / -name bcmath

[root@zabbix etc]# cd /application/tools/php-5.3.27/ext/bcmath

[root@zibbix ~]# find / -name phpize

/application/php5.3.27/bin/phpize

[root@zabbix bcmath]# /application/php5.3.27/bin/phpize 

Configuring for:

PHP Api Version:        20131106

Zend Module Api No:     20131226

Zend Extension Api No:  220131226

[root@zabbix bcmath]#

[root@zabbix bcmath]# ./configure--with-php-config=/application/php/bin/php-config

make && make install

1.15.2 安装zabbix报错PHP gettext       offPHPgettext extension missing (PHP configuration parameter --with-gettext).Translations will not be available

PHP中的getText的用法(getText是一系列的工具和库函数,帮助程序员和翻译人员开发多语言软件的), 从而实现PHPi18n. 原来当时装php时没有装gettest的扩展,没办法,重新补上.

一、PHP编译时没有加--with-gettext选项

解决方法:

此次安装是动态安装phpgettext扩展模块php的源文件中,进入ext/gettext

cd ext/gettext

/usr/local/php/bin/phpize

./configure �Cwith-php-config=/usr/local/php/bin/php-config

make && make install

二、系统缺少gettext-devel工具库,或者已经编译安装了gettext但是在编译php时没找到

vi /usr/local/php/etc/php.ini

找到extensions选项,添加如下项:

extension = "gettext.so"这里记得一定要加上扩展库的路径哦

Installing shared extensions:/application/php-5.6.5/lib/php/extensions/no-debug-non-zts-20131226/

如果没有报错,则make,再make install ,然后它告诉你一个目录

你把该目录下的bcmath.so拷贝到你php.ini中的extension_dir指向的目录中,如果被注释了把注释取消指定一个目录修改php.ini,在最后添加一句extension=bcmath.so

1.15.3 Zabbix 如何从英文改成中文

[root@zibbix ~]# cd/application/nginx-1.6.2/html/zabbix/include/

[root@zibbix include]# vimlocales.inc.php

wKiom1VNm92x_04vAAFS4Ks-upg265.jpg



wKioL1VNnVKhqgYpAADU2VfOXR0012.jpg


wKiom1VNm92wGQdjAADuXx3sYuM381.jpg

1.15.4 装完Zabbix后发现字符乱码

wKioL1VNnZrS52RyAAEiXgDNyNg791.jpg

解决办法:

windows系统找到一个字体放到桌面上传到Zabbix服务器的目录

[root@zibbix ~]# cd/application/nginx/html/zabbix/fonts/

我上传的字体名字是simkai.ttf改为DejaVuSans.ttfOK了!

[root@zibbix fonts]# mv simkai.ttfDejaVuSans.ttf

1.15.5 安装zabbix报如下错误


wKiom1VNnG_QxoU2AAEHSiTL_jo090.jpg

如果出现提示文件zabbix.conf.php无法创建,则是zabbix目录无法写入到/application/nginx-1.6.2/html/zabbix/conf/zabbix.conf.php原因是这个目录的权限不是nginx.nginx

解决方法一:      

点击downloadconfiguration file将下载的zabbix.conf.php文件上传到/application/nginx-1.6.2/html/zabbix/conf/zabbix.conf.php

解决方法二:

chown  -R nginx.nginx/application/nginx-1.6.2/html/zabbix/conf/zabbix.conf.php

1.16   安装ImageMagicg问题汇总

1.16.1 安装ImageMagicg时执行make时报错信息如下

错误原因:

虚拟机内存给小了

See<http://bugzilla.redhat.com/bugzilla> for instructions.

make[1]: ***[wand/wand_libMagickWand_la-convert.lo] Error 1

make[1]: Leaving directory`/home/oldboy/tools/ImageMagick-6.5.1-2'

make: *** [all] Error 2

解决办法:

虚拟机内存给的400M太小了,将内存设置成512问题得以解决

1.17  Mysql数据库多实例问题汇总

1.17.1 用自定义脚本停止mysql数据库服务提示以下错误

[root@Mysql ~]# /data/3307/mysql stop

Stoping MySQL...

/application/mysql/bin/mysqladmin: connect toserver at 'localhost' failed

error: 'Access denied for user 'root'@'localhost' (using password: YES)'

错误原因:

因为在/data/3307/mysql这个脚本中的数据库用户密码和自己设置mysql数据库用户的密码不相符造成的,3307数据库用户的密码应该为oldboy3307,但是我这里忘记改密码还是oldboy所以导致停止数据库失败。

解决办法:

[root@Mysql ~]# cat /data/3307/mysql

#!/bin/sh

port=3307

mysql_user="root"

mysql_pwd="oldboy" 修改为oldboy3307即可

1.18 Mysql主从同步问题汇总

1.18.1 从库上面执行show slave status时提示1007错误

mysql> show slave status;

 

wKioL1VNnuXxYkuEAACdfQP40lE830.jpg

故障原因:

是从库里边有一个butongbu数据库存在

解决办法一:

mysql> stop slave;

mysql> set globalsql_slave_skip_counter =1; 跳过1个指针

mysql> start slave;

wKiom1VNnZuB6hpCAACrsJY-eDQ278.jpg

解决办法二:

wKioL1VNnzjjRqNlAAFHYBjL7gU808.jpg

[root@MySQL ~]# vim /data/3306/my.cnf

57 elave-skip-errors = 1032,1062,1007

[root@MySQL ~]# /data/3306/mysql start


1.18.2 从库上面执行show slave status时提示1045错误

                            wKiom1VNnkOB1DKOAADEgbMYTQA236.jpg

wKiom1VNn2jxir0WAACJrV7CYec822.jpg

故障原因

从客户端在向chage master to里边写主服务端授权的rep用户密码时候输入错误了.

wKioL1VNoU6QQfLyAABDAltz1VM002.jpg


解决办法:

重新在从服务端的数据库中执行


1.18.3 Mysql连接慢解决办法

多实例的配置文件位置(根据自己的路径来配置)

[root@MySQL ~]# cat /data/3306/my.cnf

[mysqld]

skip-name-resolve

单实例的配置文件路径

[root@MySQL ~]# cat /etc/my.cnf

[mysqld]

skip-name-resolve

1.18.4 做双向主从的时候show slave status\G提示1593错误

故障原因:

双向主从在同一台服务器上面用的是多实例数据库做的实验一台mysql数据库的端口是3306,另一台是3307,3306数据库上设置chage master to的时候忘记把MASTER_PORT=3307,端口添加了所以导致了1593错误.

解决办法:

登录3306数据库重新添加chage master to信息如下:


1.18.5 双主从复制的时候发现两端的数据同步

故障原因

是其中的一个数据库的slave没有开启

解决方法

Start slave 将其开启

1.18.6 做双向主从的时候show slave status\G提示1263错误

故障原因

MASTER_LOG_FILE= ‘ mysql-bin.000001 ’ mysql前面和000001后面多了两个空格

wKiom1VNoD-BhAFYAADP_XPeuSQ505.jpg

解决方法

MASTER_LOG_FILE= ‘ mysql-bin.000001 ’去掉mysql前面和000001空格即可!

 

同样的错误1236Gotfatal error 1236 from master when reading data from binary log: 'Binary log isnot open'

故障原因:

主库上log-bin没有开启

解决办法:

[root@Mysql_01~]#  egrep "log-bin"/etc/my.cnf               

#log-bin=mysql-bin

log-bin这项打开在从库上从新show slave status\G查看OK了!

1.18.7 主库show master status没有结果

故障原因

主库的binlog功能没有开启或生效

解决方法

[root@MySQL ~]# egrep"server-id|log-bin" /data/3306/my.cnf

log-bin = /data/3306/mysql-bin

server-id = 1

正常结果

wKiom1VNoKmx7Hi4AAF_1VsYWQ4317.jpg

1.18.8 备份mysql数据库时提示mysqldump: Got error:1556: You can't use locks with log tables. when using LOCK TABLES

[root@MySQL ~]# mysqldump -uroot -poldboy3306 -S/data/3306/mysql.sock -A -B >3306backup.sql

mysqldump: Got error: 1556: You can'tuse locks with log tables. when using LOCK TABLES

[root@MySQL ~]# which mysqldump

/usr/bin/mysqldump

故障原因

Mysql的安装路径为/application/mysql,查看mysqldump的路径应该是/application/mysql/bin才对但现在的路径是rpm包安装的mysql命令路径.

/etc/profile文件中,mysql的命令所在路径,放到了/etc/profile的结尾,因此当执行mysqldump命令时,优先找到了rmp包自带的/usr/bin/mysqldump命令从而导致了1556错误.

解决办法

我们把mysql的命令路径放到PATH变量的最前面

[root@MySQL ~]# tail -1 /etc/profile

export PATH=/application/mysql/bin/:$PATH

wKioL1VNomWjb7wdAACB2xXWQA4768.jpg

[root@MySQL ~]# which mysqldump

/application/mysql/bin/mysqldump

同样错误的解决方法网址如下:

http://blog.chinaunix.net/uid-21757535-id-86425.html

1.18.9 MySQL无法启动mysqld_safe mysqld frompid file /data/3306/mysqld.pid ended

故障原因:

mysql启动脚本权限问题,这个启动脚本是我们自己写的属主默认是root.

解决方法:

1、先把mysql入手

[root@MySQL ~]# cd /data/3306

[root@MySQL 3306]# cat my.cnf

以下是mysql日志存放路径

[mysqld_safe]

log-error=/data/3306/mysql_oldboy3306.err

pid-file=/data/3306/mysqld.pid

清空之前的日志文件

[root@MySQL 3306]#>mysql_oldboy3306.err 

重新启动mysql服务查看当前的报错日志信息

[root@leo 3306]# cat mysql_oldboy3306.err

150321 17:36:26 mysqld_safe Starting mysqld daemon with databasesfrom /data/3306/data

150321 17:36:26 [Note] Plugin 'FEDERATED' is disabled.

150321 17:36:26 InnoDB: The InnoDB memory heap is disabled

150321 17:36:26 InnoDB: Mutexes and rw_locks use GCC atomic

150321 17:36:26 InnoDB: Completed initialization of buffer pool

InnoDB: The error means mysqld does not have the access rights t

InnoDB: File name ./ibdata1

InnoDB: File operation call: 'open'.

InnoDB: Cannot continue operation.

150321 17:36:26 mysqld_safe mysqld from pid file/data/3306/mysqld.pid ended

2、然后将mysql这个脚本的属主改为mysql

[root@MySQL 3306]# chown -R mysql*

1.18.10 主从复制时候报错如下?

mysql> change master to master_host='192.168.20.112', master_user='rep',master_password='123456', master_log_file='mysql-bin.000010',master_log_pos=107;

ERROR 1201 (HY000): Could not initialize master info structure; moreerror messages can be found in the MySQL error log

故障原因:

出现这个问题的原因是之前曾做过主从复制.

解决办法:

mysql>  stop slave;

mysql>  reset slave;

mysql> change master to master_host='192.168.20.112', master_user='rep',master_password='123456',master_log_file='mysql-bin.000010',master_log_pos=107;

1.19 Memcached服务问题汇总

1.19.1 Memcached服务启动时报错

[root@Memcached memcached-1.4.13]# memcached -m 16m -p 11211 -d -uroot -c 8192

memcached: error while loading shared libraries: libevent-1.4.so.2:cannot open shared object file: No such file or directory

解决办法:

[root@C66-MoBan memcached-1.4.13]#find / -name libevent-1.4.so.2

/usr/local/lib/libevent-1.4.so.2

[root@C66-MoBan memcached-1.4.13]# echo "/usr/local/lib">> /etc/ld.so.conf

[root@C66-MoBan memcached-1.4.13]#ldconfig


1.20 Centos系统问题汇总

1.20.1 Centos系统启动提示Kernel panic - notsyncing: Attempted to kill init

wKiom1VNohKi41bpAAEH-S7irFw987.jpg

故障原因:

刚装好的系统什么都没有配置,好像跟Selinux有关系,具体什么原因不太清楚

解决办法:

系统开机在此界面按e

wKioL1VNo9vRtPFaAABQ2AvnArA442.jpg




wKiom1VNoo6gw7UNAACyUzMNGRE736.jpg

wKiom1VNou7wy0-6AADTXVJccxo795.jpg

wKiom1VNozSijeTFAACv60BdqIY839.jpg

wKioL1VNpNPSTquaAAC6VnbwlsQ722.jpg

做完以上操作系统可以正常启动了,但是上面的设置只是临时关闭了selinux服务,要想避免下次启动再次出现相同的情况我们需要在进入系统后修改配置文件让它永久生效.

方法一永久生效:

[root@C66-MoBan ~]# cat/etc/sysconfig/selinux

SELINUX=disabled

方法二临时生效:

[root@C66-MoBan ~]# setenforce 0

查看selinux状态

[root@C66-MoBan ~]# getenforce

Permissive

[root@C66-MoBan ~]# sestatus

1.20.2 当从 root 用户切到普通用户时,执行 ifconfig 会提示提示:c58会遇到c64没有此问题 [oldboy@student ~]$ifconfig-bash: ifconfig: command not found?

1、命令敲错

2、命令没有在路径里面,不在环境变量里面临时解决办法

[root@oldboy ~]# export PATH

原因:这是因为普通用户oldboy系统环境变量PATH路径问题导致的。ifconfig命令是超级用户的管理命令,因此Centos5默认情况下,其命令路径/sbin不在当前普通用户的全局环境变量路径里面。

方法一:执行绝对路径

[root@localhost ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[root@oldboy ~]# which ifconfig

/sbin/ifconfig

[chuji001@oldboy ~]$ /sbin/ifconfig eth0

eth0   Linkencap:Ethernet  HWaddr00:0C:29:41:FC:0F 

      inetaddr:10.0.0.120  Bcast:10.0.0.255  Mask:255.255.255.0

      inet6 addr: fe80::20c:29ff:fe41:fc0f/64Scope:Link

 UP BROADCAST RUNNINGMULTICAST  MTU:1500  Metric:1

     RX packets:5148 errors:0dropped:0 overruns:0 frame:0

     TX packets:1508 errors:0dropped:0 overruns:0 carrier:0

     collisions:0txqueuelen:1000

    RX bytes:452215 (441.6KiB)  TX bytes:177559 (173.3 KiB)

方法二:把ifconfig的命令路径添加到PATH变量里

[zhangsan@localhost ~]$ export PATH=$PATH:$HOME/bin:/sbin

方法三:永久解决办法

[zhangsan@oldboy ~]$ vi .bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

 

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr

/bin:/root/bin

[zhangsan@oldboy ~]$export PATH

红色加粗的为我们修改的内容

这个PATH变量内容就是root下的PATH路径,很多root有权执行的系统命令在/sbin,/usr/sbin下,从安全性考虑,在普通用户下默认的PATH环境变量中,默认情况并未加入/sbin,/usr/sbin的路径配置。

使修改生效

[yinyonghong@localhost ~]$ source.bash_profile

[yinyonghong@localhost ~]$ echo$PATH  查看现在的命令变量路径

1.20.3 当切换一个普通用户时提示

[root@c66-moban ~]# su - oldboy

-bash-4.1$

-bash-4.1$

故障原因:

oldboy用户的环境变量不存在导致的此问题.

解决办法:

skel目录下的内容重新复制一份到oldboy用户的家目录即可,但是需要注意的是最好不要在root下去拷这样属主和属组是root用户到时候还得修改属主和属组。

[root@Rsync~]# cd /etc/skel/

[root@Rsyncskel]# ls -al

total20

drwxr-xr-x.  2 root root 4096 Mar 28 23:04 .

drwxr-xr-x.82 root root 4096 Apr 29 18:44 ..

-rw-r--r--.  1 root root  18 Oct 16  2014 .bash_logout

-rw-r--r--.  1 root root 176 Oct 16  2014 .bash_profile

-rw-r--r--.  1 root root 124 Oct 16  2014 .bashrc

[root@Rsyncskel]# cp -a .bash* /home/oldboy/

当你拷贝完后查看oldboy用户目录下的内容属主和属组是root需要通过chown来修改

[root@Rsyncskel]# chown -R oldboy.oldboy /home/oldboy/

[root@Rsync~]# su - oldboy  

[oldboy@Rsync~]$

1.21 LVS环境部署

1.21.1 安装ipvsadm执行make报错如下

故障原因:

ipvsadm1.26适用于kernel2.6.28及之后的内核版本,不适合本文的Centos6.6 64如果符合系统环境后,同样需要安装依懒包yum install libnl* popt*

[root@LVS ipvsadm-1.26]# make

libipvs.c:1072: error: too many arguments to function ��ipvs_nl_send_message?   make[1]: *** [libipvs.o] Error 1

make[1]: Leaving directory `/home/oldboy/tools/ipvsadm-1.26/libipvs'

make: *** [libs] Error 2

解决办法:

[[email protected]]# yum -y install libnl* popt*      

[root@LVS ipvsadm-1.26]# make

1.21.2 果需要LVSKeepalived结合使用时需要做一个link

[root@LVS tools]# ln -s /usr/src/kernels/2.6.32-504.el6.x86_64//usr/src/linux

如果没有/usr/src/kernels/2.6.32-504.el6.x86_64/

解决办法:

[root@LVS ~]# yum -y install dernel-devel

1.21.3 安装keepalived时执行./configure报错如下

报错内容:

configure: error: Popt libraries isrequired

解决办法:

[root@LVS keepalived-1.1.19]# yum -yinstall popt*

1.21.4 Keepalived服务安装完后一直无法获取VIP地址

配置完keeplived服务时用ip addr查看VIP时发现一直无法获取IP地址,自己的粗心造成的,这不算什么错误但是我想告诉大家的是如果当你目录名字写错的话会导致keepalived服务无法得到VIP地址.

目录名字本应该是keepalived,因为自己的粗心将keepalived敲成keeplived造成无法获取VIP地址

[root@LB-01 keepalived-1.2.16]# mkdir  /etc/keeplived

[root@LVS ~]# /bin/cp/usr/local/etc/keepalived/keepalived.conf /etc/keeplived/

解决办法:

重新创建目录或者直接将keeplived改名为keepalived

[[email protected]]# mkdir /etc/keepalived

1.21.5 LVS配置完成后发现在LVS本机上可以访问Apache(Real Server) WEB服务,但是在浏览器上访问的时候去无法访问

故障原因:

是因为没有在Apache(Real Server)WEB服务的LO上面配置VIP地址所以导致网站无法访问.

当我们客户端去访问网站的时候首先需要经过LVS,然后LVS会将客户的请求抛给Real Server服务器,LVS服务器向后抛的时候他会把原IP和目的IP以及MAC地址进行封装后抛给Real Server,Real Server接到包后一解包发现找到IP地址不是它自己所以会将该包丢弃然后造成网站无法访问.

解决办法:

特别提示:Apache(RealServer)服务器上配置VIP地址,而不是在LVS服务器上配置.

[root@Apache1 ~]# ifconfiglo:0 10.0.0.100/32 up

1.21.6 Nginx服务的主配置文件中Server标签的时候当你写一个不是它本身的IP地址后,当你启动Nginx服务时会报错

[root@LVS1 ~]# cat/application/nginx/conf/nginx.conf

   server {

       listen      10.0.0.130:80;

       server_name  www.etiantian.org;

       location / {

            root   html;

            index  index.html index.htm;

            proxy_pass http://web_pools;

       }

}

该服务器现在的IP地址是10.0.0.16,10.0.0.130根本不存在当我们启动Nginx服务时报错.

[root@LVS1 ~]#/application/nginx/sbin/nginx

nginx: [emerg] bind() to 10.0.0.130:80failed (99: Cannot assign requested address)

解决办法:

[root@LVS1~]# vim /etc/sysctl.conf 文件末尾添加下面一行内容

net.ipv4.ip_nonlocal_bind = 1

[root@LVS1 ~]# sysctl -p

1.12.7 安装Keepalived时执行./configure报如下错误

checking for openssl/ssl.h... no

configure: error:

!!! OpenSSL is not properly installed onyour system. !!!

!!! Can not include OpenSSL headersfiles.         !!!

1.21.8 Keepalived服务导致裂脑问题

实验环境:

LVS_DR_01LVS_DR_02两台机器, LVS_DR_01主机为Keepalived, LVS_DR_02主机为从.主从上面的都有VIP地址.

故障原因:(主从Keepalived上面的id不相同)

Keepalived主上面的配置

wKioL1VOKUiAnyqVAACKZ-mdGpw941.jpg

wKiom1VOKDTSTMyLAAEJFpuGbQQ208.jpg

Keepalived从上面的配置

wKiom1VOKHWzNnPaAACGksKb_sw412.jpg

wKioL1VOKgyClc8hAAEPgFEiA14559.jpg

解决办法:

修改主和从的Keepalivedid必须相同否则会导致裂脑.



你可能感兴趣的:(centos,FAQ,系统服务)