Centos系统服务常见FAQ汇总
1.1 文档目的
本文目的提高自己文档的写作能力及排版能力,加强上课所讲的内容得以锻炼也方便自己以后查阅特写此文档。
1.2 文档内容
Linux工作以及学习中的FAQ汇总!
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
报错信息如下:此错误原因是服务端的防火墙服务没有关闭
[root@NFSClient ~]# showmount -e192.168.88.115
clnt_create: RPC: Port mapper failure -Unable to receive: errno 113 (No route to host)
先启动rpcbind服务/etc/init.d/rpcbind start(服务端)
在次启动nfs服务/etc/init.d/nfs start
发生此问题的原因检查服务端/etc/exportfs目录下的IP地址是否对
在客户端挂载的时候有可能是因为你写的IP地址错误造成的
还有以个原因是你在客户端挂载的时候把服务端共享的目录名字写错了,(此问题的原因跟权限一点关系都没有切记%97都是以上提的那3点原因)
需要退出自动挂载目录在进行卸载,或者是NFS Server 宕机了需要强制卸载用umount -lf /mnt
[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
在服务端更改/etc/ssh/sshd_config文件中的配置内容如下:
122 UseDNS no
81 GSSAPIAuthentication no
Ssh -v [email protected]可以查看慢的细节
[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
这个是授权密码到/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
[root@Rsync-Server-B ~]#rsync -avz /data/[email protected]::oldboy --password-file=/etc/rsync.password
解决办法:
在服务端关闭防火墙
[root@Rsync-Server-A ~]#/etc/init.d/iptables stop
解决办法:
在服务端创建oldboy目录
[root@Rsync-Server-A ~]# mkdir /oldboy
解决办法:
给/oldboy目录修改rsync服务对应的用户我们这里rsync服务对应的用户就是rsync,在服务端操作
[root@Rsync-Server-A ~]# chownrsync.rsync /oldboy/
解决办法:
客户端用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
@ERROR: chdir failed
rsync error: error startingclient-server protocol (code 5) at main.c(1503) [sender=3.0.6]
错误原因:模块名字和创建目录的名字不一样所以导致客户端推送时报以下错误信息错误的名字
正确的名字
@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
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,原因是在服务端的这个配置文件里面没有给可写权限导致的。
"/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时提示如下错误
解决办法:
安装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
这个错误是因为自己配置失误造成的在这里我特意记录下导致错误的原因
[root@c66-moban ~]# cd/application/nginx/conf/
[root@c66-moban conf]# vim nginx.conf
以下这个是配置错误的选项因为在html后面没有添加blog.etiantian.org网站的根目录所以导致错误
正确配置如下
[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
验证结果
故障原因:
php-fpm没有启动导致此问题.
解决办法:
[root@Nginx_Web02 ~]#/application/php/sbin/php-fpm
1.10 虚拟机问题
1.10.1 虚拟机开机启动后提示如下错误
解决办法:
笔记本是联想T420开机按F1进入
BIOS然后按照下边操作
F10保存退出重新启动即可!
故障原因:
用services.msc查看发现VMware Workstation Server这个服务没有启动造成的
解决办法:
一个很幼稚的问题但是从来没有想过这的原因,启动VMware Workstation Server服务即可!
故障原因:
因为克隆的机器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数据库报如下错误信息:
[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)
解决办法:
1、Mysql数据库服务没有启动
2、cp /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/
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
-- 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参数定义宏,指定头文件和库的所在目录.(本人安装了ncurses就OK了只是在网上看到了顺便把此错误记录下)
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
问题二:
解决办法:
[root@LAMP php-5.3.27]# yum -y installlibxslt-devel
make: ***[ext/fileinfo/libmagic/apprentice.lo] Error 1
解决办法:
在编译安装php执行./configure加上选项:--disable-fileinfo原因是虚拟机内存给的小造成的我们可以把虚拟机的内存给大点即可!
[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
[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
/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
原因是在nginx的主配置文件网站下面没有添加fastcgi所以它没办法接下php文件.
解决办法:
[root@LAMP ]# /application/nginx/sbin/nginx�Ct
[root@LAMP ]# /application/nginx/sbin/nginx�Cs reload
解决办法:
[root@LAMP ]# /application/nginx/sbin/nginx�Ct
[root@LAMP ]# /application/nginx/sbin/nginx�Cs reload
1.13 phpMyadmin问题汇总
解决办法:
[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';
解决办法:
[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'; 这里必须写一个数据库密码否则报错
原因是数据库密码错误导致的.
缺少 mcrypt 扩展,请检查 PHP 配置。
1.14 期中架构问题汇总
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,测试页的连接主机改成了分离mysql的IP但是在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
3、web支持PHP解析,有没有php连接mysql的库
Mysql user表里的用户删不掉问题
主机名大写或特殊符号,一般drop user ‘用户’@‘主机名’无法删除的。
解决办法:
delete from mysql.user where user='' andhost='MySQL';
flush privileges;
drop database mysql后如何恢复?
1、有备份直接备份恢复
2、重新初始化数据库
3、如果正式环境,去一个新的服务器初始化数据库(版本相同)然后把数据库倒出来,恢复到正式库,然后手工重新授权web连接的账号
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
PHP中的getText的用法(getText是一系列的工具和库函数,帮助程序员和翻译人员开发多语言软件的), 从而实现PHP的i18n. 原来当时装php时没有装gettest的扩展,没办法,重新补上.
一、PHP编译时没有加--with-gettext选项
解决方法:
此次安装是动态安装php的gettext扩展模块在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。
[root@zibbix ~]# cd/application/nginx-1.6.2/html/zabbix/include/
[root@zibbix include]# vimlocales.inc.php
解决办法:
在windows系统找到一个字体放到桌面上传到Zabbix服务器的目录
[root@zibbix ~]# cd/application/nginx/html/zabbix/fonts/
我上传的字体名字是simkai.ttf改为DejaVuSans.ttf就OK了!
[root@zibbix fonts]# mv simkai.ttfDejaVuSans.ttf
如果出现提示文件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问题汇总
错误原因:
虚拟机内存给小了
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数据库多实例问题汇总
[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即可
mysql> show slave status;
故障原因:
是从库里边有一个butongbu数据库存在
解决办法一:
mysql> stop slave;
mysql> set globalsql_slave_skip_counter =1; 跳过1个指针
mysql> start slave;
解决办法二:
[root@MySQL ~]# vim /data/3306/my.cnf
57 elave-skip-errors = 1032,1062,1007
[root@MySQL ~]# /data/3306/mysql start
故障原因
从客户端在向chage master to里边写主服务端授权的rep用户密码时候输入错误了.
解决办法:
重新在从服务端的数据库中执行
多实例的配置文件位置(根据自己的路径来配置)
[root@MySQL ~]# cat /data/3306/my.cnf
[mysqld]
skip-name-resolve
单实例的配置文件路径
[root@MySQL ~]# cat /etc/my.cnf
[mysqld]
skip-name-resolve
故障原因:
双向主从在同一台服务器上面用的是多实例数据库做的实验一台mysql数据库的端口是3306,另一台是3307,在3306数据库上设置chage master to的时候忘记把MASTER_PORT=3307,端口添加了所以导致了1593错误.
解决办法:
登录3306数据库重新添加chage master to信息如下:
故障原因
是其中的一个数据库的slave没有开启
解决方法
Start slave 将其开启
故障原因
MASTER_LOG_FILE= ‘ mysql-bin.000001 ’ mysql前面和000001后面多了两个空格
解决方法
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了!
故障原因
主库的binlog功能没有开启或生效
解决方法
[root@MySQL ~]# egrep"server-id|log-bin" /data/3306/my.cnf
log-bin = /data/3306/mysql-bin
server-id = 1
正常结果
[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
[root@MySQL ~]# which mysqldump
/application/mysql/bin/mysqldump
同样错误的解决方法网址如下:
http://blog.chinaunix.net/uid-21757535-id-86425.html
故障原因:
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*
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;
[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
故障原因:
刚装好的系统什么都没有配置,好像跟Selinux有关系,具体什么原因不太清楚
解决办法:
系统开机在此界面按e键
做完以上操作系统可以正常启动了,但是上面的设置只是临时关闭了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、命令敲错
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 查看现在的命令变量路径
[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~]$
故障原因:
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
[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
报错内容:
configure: error: Popt libraries isrequired
解决办法:
[root@LVS keepalived-1.1.19]# yum -yinstall popt*
配置完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
故障原因:
是因为没有在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
[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
checking for openssl/ssl.h... no
configure: error:
!!! OpenSSL is not properly installed onyour system. !!!
!!! Can not include OpenSSL headersfiles. !!!
实验环境:
LVS_DR_01和LVS_DR_02两台机器, LVS_DR_01主机为Keepalived主, LVS_DR_02主机为从.主从上面的都有VIP地址.
故障原因:(主从Keepalived上面的id不相同)
Keepalived主上面的配置
Keepalived从上面的配置
解决办法:
修改主和从的Keepalived的id必须相同否则会导致裂脑.