mysq启动不了

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
日志服务 SLS,月写入数据量 50GB 1个月
简介:

今儿清理服务器上的废弃文件,不知道动了mysql的什么文件,重启mysql进程时提示:

StartingMySQL.. ERROR! TheserverquitwithoutupdatingPIDfile(/var/lib/l/JJonline.pid).

就抓狂了,服务器上的几个网站还跑着了,mysql启动不了这不歇菜了。找了找相关这种问题的资料,这里做下总结。

一、my.cnf配置文件datadir项配置错误或被启动脚本篡改

这个问题不太说讲,主要是mysql自带的启动文件(/etc/init.d/mysqld)中会自动检测mysql的数据存储目录,若mysql新装, 尚未初始化系统表,那么配置文件中的datadir项写不写无所谓,出现这种情况主要是在更改了mysql的数据存储目录,今天我出现的这个问题就在于此。

我的mysql安装后的配置文件中关于datadir项目的配置如下,而该配置文件存储于/etc/my.cnf,今儿不知动了什么东西,查来查去都没找着原因,后来打开该配置文件才发现,其中的datadir项目被篡改成/var/mysql/data了.....

[mysqlddatadir=/data/mysqlsocket=/tmp/mysql.sockuser=mysql

二、进程里已经存在mysql进程

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

ps-ef|grepmysql

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

三、mysql的数据存储目录权限不足

这种情况发生于mysql第一次安装或升级,配置文件中的datatdir目录的权限要设定好,一般来说运行mysql的用户以及组就是mysql.mysql,那么解决权限不足问题的方法如下:

chown-Rmysql.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:暂时关闭seliuxsetenforce0##如需每次开机都铃声关闭seliux,则可以在/etc/rc.d/rc.local文件中添加该命令

六、mysql运行状态下删除binary日志后重启失败

这是今天在群里的一个朋友出现的,特汇总于此;当mysql开启了二进制日志并且mysql在运行状态下用rm命令删除过mysql的binary日志文件的话,下次重启mysql你就悲剧了。


解决方法就是修改配置文件临时关闭binary-log,然后删除mysql数据目录下的所有类似mysql-bin.000001、mysql-bin.000002的文件后再次重启,mysql即可启动成功。

#mysql配置关闭二进制日志找到如下语句注释掉即可#log-bin=mysql-bin#binlog_format=mixed

此步骤操作完毕之后,若还需要启用二进制日志,那么就要先停掉mysql服务,然后修改msyql的配置文件,再次重启即可。

另外再附上正确删除mysql二进制日志文件的方法(绝对不是rm-rf命令直接删这些文件):

#第一步通过shellcmd登录进mysql这步没什么好说的msyql-uroot-p *** #第二步mysql下直接执行清理binary日志命令mysqlresetmaster#注意:此处仅针对单台mysql而言,若有互备mysql则执行该命令有风险


本文转自 远永201314 51CTO博客,原文链接:http://blog.51cto.com/7336056/1860177


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
关系型数据库 MySQL Linux
MySQL启动与登录命令详解
【2月更文挑战第27天】
1612 1
MySQL启动与登录命令详解
|
7月前
|
关系型数据库 MySQL 数据库
MySQL的启动停止,与环境变量配置
MySQL的启动停止,与环境变量配置
|
7月前
|
关系型数据库 MySQL Linux
linux环境下查看mysql服务状态和重启命令
linux环境下查看mysql服务状态和重启命令
554 0
|
7月前
|
关系型数据库 MySQL
MySQL 服务正在启动 MySQL 服务无法启动解决办法
MySQL 服务正在启动 MySQL 服务无法启动解决办法
271 0
|
SQL 关系型数据库 MySQL
Mysql 执行出现1292错误解决办法
Mysql 执行出现1292错误解决办法
398 0
|
关系型数据库 MySQL 网络安全
mysql5.7以上的启动、停止、赋权命令
mysql5.7以上的启动、停止、赋权命令
172 0
|
关系型数据库 MySQL 数据库
ocker mysql 主从配置
ocker mysql 主从配置
98 0
|
关系型数据库 MySQL C语言
MAMP mysql服务器无法启动没有mysql进程正在运行
MAMP mysql服务器无法启动没有mysql进程正在运行
261 0
|
SQL 存储 缓存
kill 命令之后MySQL都做了哪些
大家好,我是Leo。目前在常州从事Java后端开发的工作。上一篇我们介绍了线上数据库误删数据后,到底是跑路还是该如何解决!这一篇我们介绍一下为什么我们在调试SQL的时候会出现Kill不掉线程的情况。
kill 命令之后MySQL都做了哪些
|
分布式计算 关系型数据库 MySQL
MySQL因不能创建 PID 导致无法启动的解决办法
MySQL 启动报错信息如下: 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" for details、 [FAILED] 根据提示,使用 systemctl status mysqld.service 和 journalctl -xe 查看服务启动失败的原因。
3667 0