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 –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服務不用啓動它然後解決了

[root@NFSClient ~]# 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編輯文件的時候提示以下錯誤?

[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 –rf  /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 –t

重新啓動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 –uroot –p12156

在數據庫裏邊創建數據庫的時候報錯

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 –rf /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 –y

網上別人遇到同樣的問題安裝了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–y

問題二:

 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–t

[root@LAMP ]# /application/nginx/sbin/nginx–s reload

1.12.7 訪問php頁面提示提示找不到wKioL1VNmiax8YzbAACnE2AWi1U222.jpg


解決辦法:

wKiom1VNmOHQrusnAAGp5BjtPHU644.jpg


[root@LAMP ]# /application/nginx/sbin/nginx–t

[root@LAMP ]# /application/nginx/sbin/nginx–s 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 –with-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 鈥榠pvs_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必須相同否則會導致裂腦.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章