MySql服务器启动错误“服务器退出而不更新PID文件”

在雪豹上,启动MySQL会出现以下错误:

服务器退出而不更新PID文件

my.cnf中

[mysqld] port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16K pid-file=/var/run/mysqld/mysqld.pid [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 

试着find后缀为“.err”的日志文件,应该有更多的信息。 它可能在:

/usr/local/var/mysql/your_computer_name.local.err

这可能是权限问题

  1. 检查是否有任何mysql实例正在运行

    ps -ef | grep mysql

    如果是的话,你应该停止它,或者杀死进程

    kill -9 PID

    其中PID是前一个命令输出的用户名旁边显示的数字

  2. 检查/usr/local/var/mysql/

    ls -laF / usr / local / var / mysql /

    如果它是所有者的root你应该改变它的mysqlyour_user

    sudo chown -R mysql / usr / local / var / mysql /

你按照brew install mysql的指示吗?

设置数据库以运行您的用户帐户:

 unset TMPDIR mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp 

要在另一个文件夹中设置基表,或使用其他用户来运行mysqld,请查看mysqld_install_db的帮助:

 mysql_install_db --help 

并查看MySQL文档:

要运行,例如,用户“mysql”,您可能需要sudo

 sudo mysql_install_db ...options... 

手动启动mysqld:

 mysql.server start 

注意:如果失败了,你可能忘记了上面的两个步骤

我在我的Mac机上遇到了同样的问题(正确执行了brew installbuild议的所有安装步骤)。

删除错误文件为我解决了这个问题:

sudo rm -rf /usr/local/var/mysql/dev.work.err是我的主机名)

这工作,因为dev.work.err拥有_mysql:wheel代替我自己的用户名。 选中错误文件也可能会修复它。

重新启动后,我有同样的问题。 这是我如何解决它:

  sudo chown -R _mysql /usr/local/var/mysql 

这对我工作…

检查所有正在运行的MySQL进程:

 $ ps aux | grep mysql USER PID %CPU %MEM _mysql 5970 0.0 0.4 ... 

然后使用以下命令杀死上述命令中列出的所有进程:

 $ sudo kill -9 [PID] 

[PID]replace为上面列表中的单个PID,例如5970

对第一条命令所看到的所有行执行此操作。

然后你可以再次启动你的MySQL服务器:

 mysql.server start 

我的错误文件也告诉我,该端口可能正在被另一个进程使用,但只是运行sudo mysql.server start为我解决了这个问题。

我最近遇到了这个问题,不过之前工作过,然后就停了下来。

这是因为我最初启动mysql.server作为根,而不是我自己。

修复是删除错误日志文件(由_mysql拥有)。 再次启动它通过了。

尝试在不正确closures后启动msql时,可能会发生此错误。

  1. 看看mysql错误日志文件。 如果它提到像“检查您没有使用相同的数据或日志文件的另一个mysqld进程”。 ,那么你需要正确closures该进程。

  2. 看看mysql正在运行什么进程,使用这个命令: lsof -i:3306

你的输出应该是这样的:

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 4249 username 17u IPv4 0x7843d9d130469c0b 0t0 TCP localhost:mysql (LISTEN) 
  1. 终止运行mysql的进程: kill -15 4249

杀-15发送一个信号给进程释放它locking的任何资源并终止进程。

  1. 现在mysql应该启动没有问题: mysql.server start

为我工作的解决scheme是在这里: https : //serverfault.com/questions/334284/cant-create-pid-file-on-mysql-server-permission-denied

改变我的一些权限似乎有伎俩。 我正在运行OS X 10.8.2的2012年中期Macbook Air,并且安装了自制的mysql。

 chmod 0755 /var chown root:wheel /var/tmp sudo chmod 0771 /usr/local/var/mysql/* 

我在用着,

  • 全新的MacBook Pro OSX 10.7.3.x
  • gcc通过OSX GCC安装程序

我使用自制软件安装了MySQL('brew install mysql')。 它安装了一些依赖项,然后安装了mysql。

当我尝试启动它时,

 west$ mysql.server start Starting MySQL .. ERROR! The server quit without updating PID file (/usr/local/var/mysql/west.local.pid). 

我跑了这个命令,

 west$ /usr/local/Cellar/mysql/5.5.25/scripts/mysql_install_db 

和MySQL的作品。

请注意,您需要从mysql目录(IE,usr / local / Cellar / mysql / 5.5.25)的顶层运行mysql_install_db。 直接在/ scripts目录下运行它并没有给它足够的上下文来运行。

对我来说,解决scheme是覆盖/更正/ etc / my / cnf中的数据目录。

我使用自述文件中提供的说明从源代码构build了MySQL 5.5.27:


 # Preconfiguration setup shell> groupadd mysql shell> useradd -r -g mysql mysql # Beginning of source-build specific instructions shell> tar zxvf mysql-VERSION.tar.gz shell> cd mysql-VERSION shell> cmake . shell> make shell> make install # End of source-build specific instructions # Postinstallation setup shell> cd /usr/local/mysql shell> chown -R mysql . shell> chgrp -R mysql . shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data # Next command is optional shell> cp support-files/my-medium.cnf /etc/my.cnf shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server /etc/init.d/mysql.server 

mysqld_safe没有解释就自行终止了。 运行/etc/init.d/mysql.server start导致错误:

“服务器退出不更新PID文件”

我注意到安装说明中有些奇怪的东西。 它的所有权已更改为目录“数据”的MySQL,但不是“var”; 这是不寻常的,因为多年来我不得不确保var目录是mysql可写的。 所以我手动运行chown -R mysql /usr/local/mysql/var ,然后尝试再次启动它。 仍然没有运气。 但更糟糕的是,var dir中没有.err文件 – 它在“data”目录中! 所以脚本/ mysql_install_db在/ usr / local / mysql / var中build立了一个阵营,但是应用程序的其余部分似乎要在/ usr / local / mysql / data中工作!

所以我刚刚编辑了/etc/my.cnf和[mysqld]部分,我添加了一个指令,明确指出mysql的数据目录为var(正如我通常所期望的那样),之后,mysqld启动精细。 添加的指令看起来像这样:

datadir = / usr / local / mysql / var

为我工作。 希望它对你有帮助。

在尝试在MacOS X 10.7.5上升级时遇到此问题。

不幸的是,MySQL也从5.5.14升级到5.6.10。 尝试新的,没有工作。

我决定回到我的旧设置,并做了一个

 brew switch mysql 5.5.14 

这并没有解决问题。 在其他地方,我读了,做了这个,瞧! 所有回来:)

 cd /usr/local/var/mysql mv ib_logfile0 ib_logfile0.bak mv ib_logfile1 ib_logfile1.bak 

对我来说修复很简单:

 top 

表明mysqld已经在运行

 sudo killall mysqld 

然后让这个过程开始

看来,MySQL进程正在运行,因此您无法使用该端口。 您可以使用以下命令检查正在运行的MySQL进程:

ps auxf | grep mysql

如果你得到任何MySQL进程杀死该进程ID使用kill -9 PID,然后尝试启动MySQL。

以安全模式启动Mysql

 /usr/local/mysql/bin/mysqld_safe start 

要么

在MAC上结束活动监视器应用程序中的任何mysqlmysqld任务(或其他)。

或通过检查你的错误

 tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err 

我希望为你工作。

检查错误日志后,我发现这一点:

 120309 17:42:49 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data 120309 17:42:50 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive 120309 17:42:50 [Warning] You need to use --log-bin to make --binlog-format work. 120309 17:42:50 [Note] Plugin 'FEDERATED' is disabled. 120309 17:42:50 InnoDB: The InnoDB memory heap is disabled 120309 17:42:50 InnoDB: Mutexes and rw_locks use GCC atomic builtins 120309 17:42:50 InnoDB: Compressed tables use zlib 1.2.3 120309 17:42:50 InnoDB: Initializing buffer pool, size = 16.0M 120309 17:42:50 InnoDB: Completed initialization of buffer pool 120309 17:42:50 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/mysql/data/ib_logfile0 InnoDB: File operation call: 'open'. InnoDB: Cannot continue operation. 120309 17:42:50 mysqld_safe mysqld from pid file /usr/local/mysql/data/lu1s.local.pid ended 

为了解决这个问题,我给了整个mysql文件夹的所有权:

 cd /usr/local sudo chown mysql mysql sudo chown mysql mysql-5.5.21-osx10.6-x86_64 sudo chown _mysql mysql sudo chown _mysql mysql-5.5.21-osx10.6-x86_64 

然后(你也可以这样做),我将权限(一旦我将所有权交给_mysqlmysql用户)从/ usr / local / mysql文件夹的“get info”菜单-5.5.21-osx10.6-x86_64 。 你不需要把这个别名,因为它只是一个别名。

该文件夹的名称取决于你有的安装版本的MySQL。

有同样的问题,对我来说,它正在做一个brew的删除,而以前安装的mysqld运行。 在卸载之前,似乎brew并不会停止服务。

在检查.err文件后,我看到在终止旧服务之后,可能正在运行另一个mysql副本的logging错误。 然后我能够重新启动新的MySQL安装。

尝试这个..

  1. 导航到问题的父目录cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err (删除文件)
  3. touch YOURUSERNAME.local.pid (生成新的* .local.pid文件,所抛出的错误是抱怨)
  4. 回到你的项目,并重新启动mysql使用mysql.server start

在我的情况下,错误发生是由于错误日志文件的访问问题。

 sudo chown <user> /usr/local/var/mysql/<my-host-name>.err sudo chmod 666 /usr/local/var/mysql/<my-host-name>.err 

这两个命令帮助我解决这个问题。

我有同样的问题。 移动我的/etc/my.cnf文件为我工作。 我在这里得到了这个信息

简单….

修复2002 MySQL Socket错误

修复了即将到来的2002套接字错误 – 这是链接哪里MySQL放置套接字和OSX认为它应该是,MySQL把它放在/ tmp和OSX在/ var / mysql中查找它是一种文件,允许MySQL客户端/服务器通信。

sudo mkdir / var / mysql

sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

做得好 : )

这帮助我很多! 我从http://coolestguidesontheplanet.com/上find了这个指南;

问题是一个权限,它不能启动,因为它不能写入到mac.err,因为它拥有其他人。

确保/ usr / local / var / mysql文件夹由启动mysql的用户拥有。 如果我启动MySQL作为插孔它的一切都好。 但是,如果以root身份启动它,它将创build一个mac.err(由root拥有)文件,即jack不能写入,因此当您尝试将其重新启动时,它将失败。

  1. 确保文件夹和文件由运行mysql.server start的用户拥有
  2. 确保没有其他人拥有的mac.err或mac.pid。
  3. 开始是作为正确的用户。

在这里发布的几个答案的帮助下,我能够find问题

首先我跑

sudo -i

所以我可以有root权限。

比我删除了xxxx.err文件

rm -rf /usr/local/mysql/data/xxxx.err

在安全模式中启动MySQL之后

/usr/local/mysql/bin/mysqld_safe start

它会尝试启动,并会因为错误而退出…一个新的xxx.err文件将被创build,您需要阅读它才能查看错误的原因

tail -f /usr/local/mysql/data/mysqld.local.err

在我的情况下,由于某种原因,它丢失了/var/log/文件夹内的一些文件夹和文件…所以我创build了两个

cd /var/log

mkdir mysql

touch mysql-bin.index

新文件创build后,比你需要更改权限

chown -R _mysql /var/log/mysql

当所有这些采取的步骤,我的数据库立即开始工作…

希望这可以帮助其他人在这里…关键是阅读错误和日志,find什么是错的…

什么是错误日志说? 我得到了这个错误,并最终成为my.cnf中的一个旧的无效设置,这是mysql错误日志所指示的。 如果没有错误的configuration设置,错误日志应该至less指向正确的方向。

那么,我认为OP在这一点上已经解决了这个问题……但希望这一点可以让其他人看到这个错误朝着正确的方向发展。

检查您的驱动器是否有剩余空间。 当我的驱动器中没有空间时,我遇到了这个问题。

在我的情况下,当我试图启动MySQL,我收到了同样的错误: The server quit without updating PID file 。 这是我所做的修复(使用terminal):

 goto /usr/local/var/mysql sudo rm -rf hostname.err # Delete .err file cd /usr/local/mysql/support-files sudo mysql.server start # Success! 

删除你在错误中显示的目录中find的* .err文件,并创buildmysql正在抱怨的文件,重新启动mysql。

移动“/ var / lib / mysql”中名为“ib_logfile”的日志文件并重新启动mysql。 有时mysql会失败,因为更新日志文件时遇到困难

 mv /var/lib/mysql/ib_logfile* /some/tmp/folder/ 

您也可以删除ib_logfile,因为它将在mysql重新启动后自动创build

现在重启mysql服务器

就我而言,我在vps,cPanel上得到了这个问题。

我尝试了大多数上述的答案,但没有成功。

  1. 检查你的错误日志。 这将在错误行结束时提到。

错误! 服务器退出时不更新PID文件(/var/lib/mysql/111318.vps-11.com.pid)。

  1. 打开该文件(/var/lib/mysql/111318.vps-11.com.err),并打开底部的lates行。 就我而言,有

[错误]致命错误:无法打开和locking权限表:表“./mysql/db”被标记为崩溃,应该修复

  1. 如何解决这个问题:通过命令恢复和修复表索引:

[〜]#myisamchk -r /var/lib/mysql/mysql/db.MYI

https://forums.cpanel.net/threads/mysql-is-not-running.407142/

  1. (重新)启动你的MySQL

这个问题通常在你没有安装libaio.1库时才会出现。 首先安装该软件包,然后重新执行mysql_install_db步骤。