登录
  • 欢迎访问悠扬的技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站😉

MySQL启动失败PID文件相关问题排查

Mysql 悠扬 119次浏览 已收录 0个评论

问题原因

首先pid文件是mysql启动后,生成的一个文件,里面记录的是mysql当前的进程号,如果创建失败,mysql就无法启动。

可能原因:
mysql的端口被占用
生成pid文件的目录mysql的权限不足
mysql对应的my.cnf配置文件错误
mysql的启动脚本有问题
mysql有残余数据影响了服务的启动
注意查看报错日志,如没有特殊配置,通常在数据库的data目录下

问题一:端口被占用

如果你启动的这个mysql的端口已被其他服务占用,应修改对应my.cnf中的端口号为其他端口,然后重启mysql.如果在重启mysql前,已有该mysql的进程,建议kill掉再重启

[mysqld] 
port=3307

问题二:生成pid文件的目录mysql的权限不足

找到指定的mysql的数据存放目录并授权

chown -R mysql.mysql /data/mysql

备注:
通常有些情况,某些linux内核的系统,注重”安全”,对目录或你登陆的账号的权限有限制,也会导致此问题.

可尝试给你数据库目录的前一个目录设置755权限 chmod -R 755 /data
如始终权限导致异常,请联系该服务器系统的提供者.

如果授权后,仍无法启动。可以自己touch一个以主机名命名的pid文件,再启动

cd /data/mysql 
touch node1.pid

问题三:该mysql对应的my.cnf配置文件错误

查看my.cnf中的port,datadir,basedir,socket等参数的配置是否正确,且配置的目录mysql是否有权限

需要注意的是: 不要把mysql其他版本的调优后的my.cnf文件 放到你的my.cnf配置的目录下
使用调优参数时,有时会因为版本变动的,部分参数不支持,初始化时导致异常.

例如:把mysql5.5调优后的my.cnf 直接使用到 mysql5.6 mysql5.7 mysql8.0

问题四:mysql的启动脚本有问题

当不确定启动脚本或mysql.server配置文件内参数是否正常时,先使用mysqld_safe方式启动,查看是否可启动
(先cd到mysql的安装根目录)

./mysqld_safe –defaults-file=/etc/my.cnf –user=mysql
or
./mysqld_safe –defaults-file=/etc/my.cnf –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data –pid-file=/usr/local/mysql/mysql.pid  –socket=/tmp/mysql.sock –port=3306

如果可以启动,那么需要查看mysql启动脚本或mysql.server配置文件内参数并进行修改

重点看下面两个参数
basedir
datadir

问题五:该mysql有残余数据影响了服务的启动

去mysql的数据存放目录进行删除,然后重启

cd /data/mysql/ 
rm -r *index 
/etc/init.d/mysql start

如果还是无法启动,去mysql的数据存放目录进行再删除,然后启动(如果数据库不是新安装的且数据仍在使用,不建议删除ib开头的文件。如果删除后,要使用备份对数据库进行恢复)

cd /data/mysql/ 
rm -r *index 
rm -r ib*

备注

如果是把mysql的数据存放目录下的文件都删除了,还是不行删除后重新初始化。初始化后,进行启动。

例如:

/usr/local/mysql/bin/mysqld –initialize-insecure

 


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明MySQL启动失败PID文件相关问题排查
喜欢 (0)
支付宝[]
分享 (0)
悠扬
关于作者:
10年以上工作经验,从事2年微服务架构搭建工作,有大数据处理相关工作经验,使用spring全家桶包括:Spring,SpringBoot,SpringCloud 数据层组件服务使用SpringDataJpa,Mybatis以及其他第三方组件Sharding-JDBC,Sharding-Proxy分库分表。熟悉微服务,服务降级,限流,分流,做过项目源码修改,有cat,apollo,nacos使用经验,有Lostash,Elasticsearch,kibana,mysqlMHA生产实践经验,使用开源代码Apache Sarding项目,修改源码支持mysql分库分表使用年月日小时分库分表,docker做集群服务,Jekins做项目发布,GitLab做项目管理,使用docker容器部署,熟悉消息队列RabbitMQ,Kafka,ActiveMQ。RuoYi-Vue-Atomikos项目开源加入生态圈组件,项目支持分布式事务,界面添加多数据源,数据源动态配置,切面切换,多数据源事务支持,支持区域数据源配置,用于区域数据切分,数据层次分库。项目地址:https://gitee.com/zsiyang/ruoyi-vue-atomikos
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址