如何解决CentOS下启动MySQL失败的问题

 我来答
盘默M2
2016-03-15 · TA获得超过2.9万个赞
知道大有可为答主
回答量:9723
采纳率:93%
帮助的人:8188万
展开全部
一、my.cnf配置文件datadir项配置错误或被启动脚本篡改
这个问题不太说讲,主要是mysql自带的启动文件(/etc/init.d/mysqld)中会自动检测mysql的数据存储目录,若mysql新装,尚未初始化系统表,那么配置文件中的datadir项写不写无所谓,出现这种情况主要是在更改了mysql的数据存储目录,今天我出现的这个问题就在于此。
我的mysql安装后的配置文件中关于datadir项目的配置如下,而该配置文件存储于/etc/my.cnf,今儿不知动了什么东西,查来查去都没找着原因,后来打开该配置文件才发现,其中的datadir项目被篡改成/var/mysql/data了.....
[mysqld] datadir=/data/mysql socket=/tmp/mysql.sock user=mysql

二、进程里已经存在mysql进程
这种情况我很少遇到,若存在mysql进程但有不提供mysql服务(表现为其他客户端连接不上mysql服务器,例如php连接mysql时提示“连接失败”),这个时候就要看看有没有存在的mysql僵尸进程了,命令如下:
ps -ef|grep mysql

若存在,该命令执行后会列出存在的僵尸进程,kill -9 `pid`掉即可。

三、mysql的数据存储目录权限不足
这种情况发生于mysql第一次安装或升级,配置文件中的datatdir目录的权限要设定好,一般来说运行mysql的用户以及组就是mysql.mysql,那么解决权限不足问题的方法如下:
chown -R mysql.mysql /data/mysql ##该命令仅为示例,其中/data/mysql就是mysql配置文件中datadir的目录 ##若为空,则默认为mysql安装目录下的data文件夹下

四、覆盖安装或升级mysql后,残余数据的影响
这种情况发生于mysql被覆盖安装或升级后,当然mysql无故宕机后也会有这种情况,可能会影响mysql启动的数据文件,一般存在于mysql的数据存储目录(这个目录依据my.cnf配置文件中的datadir而异),也就是存在于mysql数据存储目录下的mysql-bin.index文件,删除之即可。

五、selinux的问题,centos下最容易出现
selinux不甚了解,直接关掉。
##方法1:永久关闭seliux ##修改 vi /etc/selinux/config #文件中设置SELINUX=disabled ,然后重启服务器 ##方法2:暂时关闭seliux setenforce 0 ##如需每次开机都铃声关闭seliux,则可以在/etc/rc.d/rc.local文件中添加该命令

六、mysql运行状态下删除binary日志后重启失败
这是今天在群里的一个朋友出现的,特汇总于此;当mysql开启了二进制日志并且mysql在运行状态下用rm命令删除过mysql的binary日志文件的话,下次重启mysql你就悲剧了。
什么是binary日志?说白了就是mysql的数据目录下的mysql-bin.000001、mysql-bin.000002的文件,下图所示。

解决方法就是修改配置文件临时关闭binary-log,然后删除mysql数据目录下的所有类似mysql-bin.000001、mysql-bin.000002的文件后再次重启,mysql即可启动成功。
#mysql配置关闭二进制日志 找到如下语句 注释掉即可 #log-bin=mysql-bin #binlog_format=mixed

此步骤操作完毕之后,若还需要启用二进制日志,那么就要先停掉mysql服务,然后修改msyql的配置文件,再次重启即可。
另外再附上正确删除mysql二进制日志文件的方法(绝对不是rm -rf命令直接删这些文件):
#第一步 通过shell或cmd登录进mysql 这步没什么好说的 msyql -u root -p *** #第二步 在mysql下直接执行清理binary日志命令 mysql> reset master #注意:此处仅针对单台mysql而言,若有互备mysql 则执行该命令有风险
单身情人男
2017-03-31 · TA获得超过105个赞
知道答主
回答量:154
采纳率:0%
帮助的人:50.2万
展开全部
解决方法如下:1、打开MySQL的日志文件,输入命令:vim/var/log/mysqld.log2、在日志文件里找出错误信息。这个错误是ibdata1文件大小参数被修改了,导致跟默认值不一样。3、打开MySQL的配置文件,输入命令:vim/etc/my.cnf4、如错误提示中所说:ibdata1 的值640个pages配置文件中的值768个pages不同。所以修改my.cnf中innodb_data_file_path中ibdata1的值即可.首先计算ibdata1的初始值:640/64=10M最后的配置是:innodb_data_file_path=ibdata1:10M:autoextend如果my.cnf没有该项配置,只要添加即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Vast的天涯

2018-07-26 · TA获得超过4.6万个赞
知道大有可为答主
回答量:1.6万
采纳率:94%
帮助的人:1034万
展开全部
一、my.cnf配置文件datadir项配置错误或被启动脚本篡改
这个问题不太说讲,主要是mysql自带的启动文件(/etc/init.d/mysqld)中会自动检测mysql的数据存储目录,若mysql新装,尚未初始化系统表,那么配置文件中的datadir项写不写无所谓,出现这种情况主要是在更改了mysql的数据存储目录,今天我出现的这个问题就在于此。
我的mysql安装后的配置文件中关于datadir项目的配置如下,而该配置文件存储于/etc/my.cnf,今儿不知动了什么东西,查来查去都没找着原因,后来打开该配置文件才发现,其中的datadir项目被篡改成/var/mysql/data了.....
[mysqld] datadir=/data/mysql socket=/tmp/mysql.sock user=mysql

二、进程里已经存在mysql进程
这种情况我很少遇到,若存在mysql进程但有不提供mysql服务(表现为其他客户端连接不上mysql服务器,例如php连接mysql时提示“连接失败”),这个时候就要看看有没有存在的mysql僵尸进程了,命令如下:
ps -ef|grep mysql

若存在,该命令执行后会列出存在的僵尸进程,kill -9 `pid`掉即可。

三、mysql的数据存储目录权限不足
这种情况发生于mysql第一次安装或升级,配置文件中的datatdir目录的权限要设定好,一般来说运行mysql的用户以及组就是mysql.mysql,那么解决权限不足问题的方法如下:
chown -R mysql.mysql /data/mysql ##该命令仅为示例,其中/data/mysql就是mysql配置文件中datadir的目录 ##若为空,则默认为mysql安装目录下的data文件夹下

四、覆盖安装或升级mysql后,残余数据的影响
这种情况发生于mysql被覆盖安装或升级后,当然mysql无故宕机后也会有这种情况,可能会影响mysql启动的数据文件,一般存在于mysql的数据存储目录(这个目录依据my.cnf配置文件中的datadir而异),也就是存在于mysql数据存储目录下的mysql-bin.index文件,删除之即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瑛夫科技
2018-07-31 · TA获得超过8331个赞
知道大有可为答主
回答量:3426
采纳率:89%
帮助的人:635万
展开全部
打开MySQL的日志文件,输入命令:
vim /var/log/mysqld.log
在日志文件里找出错误信息。这个错误是ibdata1文件大小参数被修改了,导致跟默认值不一样。
打开MySQL的配置文件,输入命令:
vim /etc/my.cnf
如错误提示中所说: ibdata1 的值640个pages 配置文件中的值768个pages 不同。所以修改my.cnf 中innodb_data_file_path 中ibdata1 的值即可.
首先计算ibdata1的初始值:640/64 = 10M
最后的配置是:
innodb_data_file_path = ibdata1:10M:autoextend
如果my.cnf没有该项配置,只要添加即可。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式