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
这可能是权限问题
- 
检查是否有任何mysql实例正在运行 ps -ef | grep mysql 如果是的话,你应该停止它,或者杀死进程 kill -9 PID 其中 PID是前一个命令输出的用户名旁边显示的数字
- 
检查 /usr/local/var/mysql/ls -laF / usr / local / var / mysql / 如果它是所有者的 root你应该改变它的mysql或your_usersudo 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文档:
- http://dev.mysql.com/doc/refman/5.5/en/mysql-install-db.html
- http://dev.mysql.com/doc/refman/5.5/en/default-privileges.html
 要运行,例如,用户“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时,可能会发生此错误。
- 
看看mysql错误日志文件。 如果它提到像“检查您没有使用相同的数据或日志文件的另一个mysqld进程”。 ,那么你需要正确closures该进程。 
- 
看看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) 
-  终止运行mysql的进程: kill -15 4249
杀-15发送一个信号给进程释放它locking的任何资源并终止进程。
-  现在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上结束活动监视器应用程序中的任何mysql或mysqld任务(或其他)。 
或通过检查你的错误
 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 
然后(你也可以这样做),我将权限(一旦我将所有权交给_mysql和mysql用户)从/ usr / local / mysql文件夹的“get info”菜单-5.5.21-osx10.6-x86_64 。 你不需要把这个别名,因为它只是一个别名。
该文件夹的名称取决于你有的安装版本的MySQL。
有同样的问题,对我来说,它正在做一个brew的删除,而以前安装的mysqld运行。 在卸载之前,似乎brew并不会停止服务。
在检查.err文件后,我看到在终止旧服务之后,可能正在运行另一个mysql副本的logging错误。 然后我能够重新启动新的MySQL安装。
尝试这个..
-  导航到问题的父目录cd YOURPATH/usr/local/mysql
-   rm -rf *.local.err(删除文件)
-   touch YOURUSERNAME.local.pid(生成新的* .local.pid文件,所抛出的错误是抱怨)
-  回到你的项目,并重新启动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
做得好 : )
问题是一个权限,它不能启动,因为它不能写入到mac.err,因为它拥有其他人。
确保/ usr / local / var / mysql文件夹由启动mysql的用户拥有。 如果我启动MySQL作为插孔它的一切都好。 但是,如果以root身份启动它,它将创build一个mac.err(由root拥有)文件,即jack不能写入,因此当您尝试将其重新启动时,它将失败。
- 确保文件夹和文件由运行mysql.server start的用户拥有
- 确保没有其他人拥有的mac.err或mac.pid。
- 开始是作为正确的用户。
在这里发布的几个答案的帮助下,我能够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上得到了这个问题。
我尝试了大多数上述的答案,但没有成功。
- 检查你的错误日志。 这将在错误行结束时提到。
错误! 服务器退出时不更新PID文件(/var/lib/mysql/111318.vps-11.com.pid)。
- 打开该文件(/var/lib/mysql/111318.vps-11.com.err),并打开底部的lates行。 就我而言,有
[错误]致命错误:无法打开和locking权限表:表“./mysql/db”被标记为崩溃,应该修复
- 如何解决这个问题:通过命令恢复和修复表索引:
[〜]#myisamchk -r /var/lib/mysql/mysql/db.MYI
https://forums.cpanel.net/threads/mysql-is-not-running.407142/
- (重新)启动你的MySQL
这个问题通常在你没有安装libaio.1库时才会出现。 首先安装该软件包,然后重新执行mysql_install_db步骤。