mysql启动失败,报没有pid错误

安装完Mysql后,启动mysqld失败,花了很长时间才找到原因,现在根据网友提供的解决方法汇总一下,方便遇到时可以参考排查

现象:service mysql start 时提示如下错误:

[root@mysqldb data]# service mysql start
Starting MySQL…The server quit without updating PID file ([失败]/data/3306/mysql.pid).

原因分析:

​ mysql.pid文件是在重动mysql的时候会创建的,如果创建失败就会提示这个错误,发现导致此错误有很多种原因,像权限、端口被占用、参数文件配置错误等等,现具体的如下:

解决方式:

在mysql的datadir数据目录下没有pid文件或者未被授权

  1. 一定要给譬如/data/mysql授权
chown -R mysql:mysql /data/mysql
  1. 如果授权了不好使,你可以自己在/data/mysql下建立一个以主机名命名的pid,如我的主机名是centos-6.3
cd /data/mysql && touch centos-6.3.pid

# 在里面随意写一个进程中没有的pid号
  1. 如果还是不行,你就需要看看配置文件/etc/my.cnf里面的配置了,将port、datadir、basedir、 socket前的#去掉

  2. 另外的处理方法还有可能是下面的原因导致

​ a. 可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。

​ 解决方法:

​ 去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。

​ b. mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。

​ 解决方法:

​ 请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

​ c. skip-federated字段问题

​ 解决方法:

​ 检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

​ d. selinux惹的祸,如果是centos系统,默认会开启selinux

​ 解决方法:

​ 关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

​ e. 由于是以系统命令方式启动的,检查mysql.server配置文件内的配置项是否正确,若 无法判断参数是否正确,可以以Mysqld_safe来启动

​ 参考命令如下:

[root@mysqldb 3306]# ll
total 8
drwxr-xr-x 5 mysql mysql 4096 Mar 15 19:16 data
-rw-r–r-- 1 mysql mysql 3676 Mar 15 18:44 my.cnf [root@mysqldb 3306]# vi mysql.start --创建 /mysql/app/mysql/bin/mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --user=mysqld [root@mysqldb 3306]# chmod -R 777 mysql.start --授权 [root@mysqldb 3306]# ll
total 12
drwxr-xr-x 5 mysql mysql 4096 Mar 15 19:16 data
-rw-r–r-- 1 mysql mysql 3676 Mar 15 18:44 my.cnf
-rwxrwxrwx 1 root root 89 Mar 15 22:36 mysql.start
[root@mysqldb 3306]# ./mysql.start
[root@mysqldb 3306]# 2018-03-15T14:36:52.021705Z mysqld_safe Logging to ‘/mysql/log/3306/mysqldb-error.err’.
2018-03-15T14:36:52.043126Z mysqld_safe Starting mysqld daemon with databases from /mysql/data/3306/data
[root@mysqldb 3306]# ps -ef|grep mysqlroot
3627 1 0 22:36 pts/0 00:00:00 /bin/sh /mysql/app/mysql/bin/mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --user=mysqldmysql
4764 3627 48 22:36 pts/0 00:00:11 /mysql/app/mysql/bin/mysqld --defaults-file=/mysql/data/3306/my.cnf --basedir=/mysql/app/mysql --datadir
=/mysql/data/3306/data --plugin-dir=/mysql/app/mysql/lib/plugin --user=mysqld --log-error=/mysql/log/3306/mysqldb-error.err --open-files-limit=65536
–pid-file=/mysql/data/3306/mysql.pid --socket=/mysql/data/3306/mysql.sock --port=3306
root 4796 2174 0 22:37 pts/0 00:00:00 grep mysql

​ f. Mysql关闭时命令是否正确,第6点与本文说明不一致,但是这个非正确关闭也会导致这种现象

mysql启动失败,报没有pid错误的更多相关文章

  1. MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法

    MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法 错误2,系统找不到文件. 开始...运行... regedit  注册表项: HKEY_LOCAL_ ...

  2. 解决mysql启动失败报1067错误

    最近做项目使用 mysql 数据库 ,因为卸载了鲁大师造成了数据库文件缺失.重装mysql数据库后启动出现了1067错误,详情如下 在网上查了错误原因,将my.ini文件下的默认搜索引擎换成了 myi ...

  3. Mysql 启动失败 报错 1067

    Mysql装好后,重启电脑第二次发现服务无法启动.提示如下: ------------------------ MySQL 服务无法启动. 系统出错. 发生系统错误 1067. 进程意外终止. --- ...

  4. XAMPP中Apache和Mysql启动失败问题总结

    一.Apache启动失败 xampp启动时显示的错误为: 9:52:41  [Apache]  Attempting to start Apache app... 9:52:41  [Apache]  ...

  5. Mysql启动失败解决方案 - 个人经验可能不适合所有场景

    以前一直用的Mysql5.5,安装程序是一个exe程序,安装完了相应的服务也给我注册好了,然后直接启动连接即可. 最近升级到了8.0.15,发现和以前不一样了. 8.0.15下载地址 安装解压之后目录 ...

  6. Linux下mysql启动失败

    原因:强制重启服务器之后,发现mysql启动 失败 解决方法:强制清空 报错路径下的tmp文件,清空之后在tmp下面新建一个文件夹,文件夹的名字在你清空tmp之后启动mysql系统会给你提示 欧克,完 ...

  7. mysql 启动失败,数据恢复

    mysql 启动失败,数据恢复 2017年02月13日 16:46:36 阅读数:621 Forcing InnoDB Recovery提供了6个等级的修复模式,需要注意的是值大于3的时候,会对数据文 ...

  8. MySQL创建函数报“ERROR 1418 ”错误,不能创建函数

    MySQL创建函数报ERROR 1418错误,不能创建函数,根据官方提示是说,不能创建函数可能是一个安全设置方面的配置或功能未开启原因,下面我们一起来看.   错误 ERROR 1418 (HY000 ...

  9. Mysql启动失败 MYSQL:The server quit without updating PID file

    MySQL5.6启动时出错 提示MYSQL:The server quit without updating PID file 首先执行 /bin/mysqld_safe --user=mysql & ...

  10. Mysql 启动失败常见错误

    各位可以按照顺序逐条拍错. mysql启动时报错:Starting MySQL... ERROR! The server quit without updating PID file (/opt/my ...

随机推荐

  1. PHP如何获取短网址跳转之前的网址?

    现在有很多的短网址应用,点击就跳转到缩短之前的网址了,那今天我们就来看一下,PHP如何**短网址跳转之前的网址,其实也很简单,就是用php的get_headers 函数,取得Response Head ...

  2. SQL ERVER 表转化为C#实体(SQL 代码)

    本文推出SqlServer表转化为实体的sql代码 在VS中有可以自带生成实体类的快捷操作,但是生成的代码比较杂乱,很多东西都是不需要的,一个一个去敲又很浪费时间,关键太无聊了 在闲暇之余写一份代码供 ...

  3. ASP.NET Core 6框架揭秘实例演示[42]:检查应用的健康状况

    现代化的应用及服务的部署场景主要体现在集群化.微服务和容器化,这一切都建立在针对部署应用或者服务的健康检查上.ASP.NET提供的健康检查不仅可能确定目标应用或者服务的可用性,还具有健康报告发布功能. ...

  4. 【项目学习】ERC-4337 抽象账户项目审计过程中需要注意的安全问题

    抽象账户是什么 抽象账户(也有叫合约钱包)是 EIP-4337 提案提出的一个标准.简单来说就是通过智能合约来实现一个"账户(account)",在合约中自行实现签名验证的逻辑.这 ...

  5. 现代C++(Modern C++)基本用法实践:四、模板

    概述 C++的模板是泛型编程思想的一种实现.C++是强类型语言,处处强调类型.同样的加法运算,int和float的加法运算需定义两个函数(重载),而使用模板则可以只用一个函数(见下面示例). 这类似我 ...

  6. Mysql基础5-用户及权限管理

    一.介绍 DCL:Data Control Language(数据控制语言),用来管理数据库用户,控制数据库的访问,权限. 二.用户管理 1.查询用户 语法: 1.use mysql; 2.selec ...

  7. Django学习笔记:第二章django的安装和创建应用

    1.安装Django 终端运行 pip install django 查看django是否安装成功 python -m django --version 1.1 安装虚拟环境 在控制台运行 pip i ...

  8. 【go语言】1.2.1 Go 环境安装

    Go 语言的安装过程非常简单,无论你使用的是哪种操作系统,都可以按照下面的步骤来进行. Windows 系统 前往 Go 语言的官方下载页面:https://golang.org/dl/ 根据你的操作 ...

  9. ubuntu server安装图形化界面

    只需一个命令,然后重启即可: # apt-get install ubuntu-desktop # 查看下一次启动的设置 systemctl get-default # reboot

  10. 学习狂神Spring5_课堂笔记(更新中)

    Spring 简介 spring,英文单词为春天,表示为软件行业带来了春天. 2002年,首次推出了Spring框架的雏形:interface21框架.官网为:www.interface21.io但是 ...