解决Centos系统中mysql无法启动问题

今天一来公司,开发人员就对我说mysql无法启动起来了,一问才知道他对测试服务器上的服务都执行了重启,当时心里那个气啊,想给他124,你说你要重启服务也要问问我啊,现在整出问题来了,就知道来找我了.气归气,问题还是要解决.先检查了下服务器的磁盘空间,发现没有满,再检查了下mysql配置,也没有问题,最后看了下mysql日志,才终于找到问题,如图

  原来是有个表有问题,找到开发问了下,这个表是他才备份的,还不能删,服务器上的数据是今天最新的,还没有备份,真是日个狗了,好吧,那只能根据日志里的提示先修改innodb_force_recovery了.
  ps:

  innodb_force_recovery影响整个InnoDB存储引擎的恢复状况.默认为0,表示当需要恢复时执行所有的恢复操作.当不能进行有效的恢复操作时,mysql有可能无法启动,并记录下错误日志.innodb_force_recovery可以设置为1-6,大的数字包含前面所有数字的影响.当设置参数值大于0后,可以对表进行select,create,drop操作,但insert,update或者delete这类操作是不允许的.

  1(SRV_FORCE_IGNORE_CORRUPT):忽略检查到的corrupt页.
  2(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash.
  3(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作.
  4(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作.
  5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交.
  6(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作.

操作如下:

在my.cnf中添加了以下两个参数:
innodb_force_recovery=6
innodb_purge_thread=0

然后重启mysql
service mysqld restart

重启好了之后,立即对数据库做逻辑导出,然后将innodb_force_recovery设置为0,innodb_purge_thread=1,重建数据库.这样mysql的问题就解决了,最后把mysql的定时备份也改成早上备一次和晚上备一次了.

问题二,CentOS上不能启动MySQL的问题解决办法

1. /etc/my.cnf的默认配置

配置文件的内容如下:

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Default to using old password format for compatibility with mysql 3.x

# clients (those using the mysqlclient10 compatibility package).

old_passwords=1

[mysql.server]

user=mysql

basedir=/var/lib

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

由于项目需要需要修改datadir的值,如下

datadir=/usr/local/project/etc/data

 

在CentOS中启动MySQL:

[wzhwho@local~]#service mysqld start

Starting mysqld daemon  [FAILED]

 

2. 先看错误日志

采用rpm安装的MySQL日志文件的默认路径是/var/log/mysqld.log

mysqld started

InnoDB: Operating system error number 13 in a file operation.

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

InnoDB: the directory.

InnoDB: File name /usr/local/project/etc/data/ibdata1

InnoDB: File operation call: 'create'.

InnoDB: Cannot continue operation.

mysqld ended

 

从日志可以知道,mysql的数据文件目录没有权限,所以我需要按照/var/lib/mysql目录的权限给/usr/local/project/etc/data目录设置权限和属主。

[wzhwho@local~]#ll /var/lib

drwxr-x-r-x 1        mysql         mysql  4  Apr 11 2009    mysql

[wzhwho@local~]#ll /var/lib

[wzhwho@local~]chown -R mysql:mysql /usr/local/project/etc/data

[wzhwho@local~]chmod -R 755 /usr/local/project/etc/data

[wzhwho@local~]#ll  /usr/local/project/etc

drwxr-x-r-x 1        mysql         mysql  4  Apr 11 2009    data

接着我又启动了MySQL,但是还是失败,日志信息还是一样。

 

3. 修改配置文件/etc/selinux/config

最后,我在外国友人的邮件来往中查到这样的回复:

If you are using SE linux, set it to permissive mode by editing /etc/selinux/config

and changing

SELINUX=enforcing to SELINUX=permissive

This solved all of my problems with the

"Operating system error number 13 in a file operation" error

 

所以,最后确定为selinux的问题,输入命令ls -Z,你会发现在文件或文件夹上面打的标签。如果一个文件是在selinux打开的时候创建的,那么即使你关闭selinux,它的权限控制还是会起作用的。可以通过chcon来改变权限。

 

4. MySQL成功启动

[wzhwho@local~]#service mysqld start

Starting mysqld daemon  [OK]

时间: 2024-12-03 05:54:35

解决Centos系统中mysql无法启动问题的相关文章

centos系统中VPS忘记密码该如何解决?

  centos系统中VPS忘记密码该如何解决?          下面我就随便拿一个VPS来测试,本文以CentOS5.*系统为例,分别在2台KVM架构VPS上测试,他们是:XSVPS.COM(堪萨斯)和VPSPLAZA.COM(新加坡) 假设我们忘记了root密码,首先,登陆到SolusVM管理面板,我们先执行重启,然后VNC连接上去. 可以直接在面板中点击VNC按钮,也可以记录VNC信息后使用工具,我这里直接后台执行. 注意上面这一步,重启了就立马去VNC,动作稍快点,因为这个启动菜单很快

CentOS 7下MySQL服务启动失败的快速解决方法_Mysql

今天,启动MySQL服务器失败,如下所示: [root@spark01 ~]# /etc/init.d/mysqld start Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe&qu

Java系统中GC频繁启动是什么原因?

问题描述 Java系统中GC频繁启动是什么原因? 我这两天在面试一个工作,他们好像遇到问题,可能现在的系统代码质量不高,GC每3秒钟启动一次,他问我是不是修改JVM的参数可以解决,调正GC的young.old.permanent的大小?我过两天要去面试,想准备一下,有人知道这是为什么吗?有什么解决的途径? 解决方案 http://www.oschina.net/question/1390076_242908 解决方案二: http://blog.csdn.net/xinwang/article/

【小白】xampp中mysql无法启动

问题描述 [小白]xampp中mysql无法启动 点击start 过一会就自动停止 错误信息是这样的 在线等!求大神解救 解决方案 从日志来看貌似你的端口3306被占用了,参考http://jingyan.baidu.com/article/3c48dd34491d47e10be358b8.html 解决方案二: mysql使用的哪个端口,是不是不正确端口,或被占用 解决方案三: 多谢各位 解决了. 用命令行找到进程号 然后结束掉就可以了~

解决Windows系统中explorer.exe出错

问题 原来的时候用WindowsXp Sp2系统,但经常出现explorer.exe出错,点确定之后就变蓝屏了,只好冷启动.现在我把系统重装了,装sp1的,但发现这个sp1的系统却是点什么程序都是出错,将发送报告.偶尔就出现explorer.exe出错,但点确定之后不会蓝屏幕. 这样是不是什么最 新的病毒症状?另外我发现有一个盘里出现一个文件夹,文件名很长b2e4p8erk8687等由数字和字母组成,点进去 里面是一个common文件夹,还有什么sp2,sp1等一些程序和一些dll文件,我把盘格

CentOS系统中怎么修改默认SSH端口?

  CentOS系统中怎么修改默认SSH端口?          默认的centOS默认端口是22,时间久了你会找到很多日志文件,这是扫描攻击留下的错误日志.那么今天我们要做的就是改成只有自己知道的数字,这样降低了被扫描到的几率,也就等于提高了安全性. 1.登陆SSH修改配置文件,输入如下命令 vi /etc/ssh/sshd_config 会出现如下提示,大家能够看到#port 22,代表默认端口22.按下键盘的a,vi命令中a是编辑,你按下a之后进入编辑状态,这时候可以用键盘的上下键移动绿色

在CentOS系统中安装RPMforge的方法

  RPMforge 是 Dag.Dries 和其它软件包的组合.它们为 CentOS 提供了超过 4000 个软件包,包括 mplayer.xmms-MP3和其它流行的媒体播放工具.RPMforge 不是红帽子 Linux 产品或 CentOS 的组成部分,但它是为这些 Linux 套件而设计的. 注释:因为这个安装源不是 CentOS 本身的组成部分,所以有关技术支持的问题应当向 RPMforge 的维护者发送. RPMforge 软件包以 rpm 格式提供,并且一般都是可用的.必需注意,有

CentOS系统中一键安装Openstack图文教程_OpenStack

前言 首先找到一个国外的网站, http://openstack.redhat.com/Main_Page,进入到quickstart页面中 简单翻译如下:       用到的工具是一个被成为RDO的东东, 能够在基于RHEL内核的linux系统,如RedHat,CentOS,Scientific Linux下,快速实现三步安装.  一:安装RDO软件 sudo yum install -y http://rdo.fedorapeople.org/rdo-release.rpm 二:安装一个叫p

CentOS系统中安装配置Apache+PHP+MySQL环境

  首先下载软件; [root@localhost ]# wget http://apache.mirror.phpchina.com/httpd/httpd-2.2.9.tar.gz --00:47:30-- http://apache.mirror.phpchina.com/httpd/httpd-2.2.9.tar.gz Resolving apache.mirror.phpchina.com... 221.194.139.225 Connecting to apache.mirror.p