MySql服务器启动错误'服务器退出而不更新PID文件'
在Snow Leopard上,启动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
Chinmay asked 2019-02-15T09:27:26Z
30个解决方案
253 votes
尝试找到带有后缀“.err”的日志文件,应该有更多信息。 它可能在:
/usr/local/var/mysql/your_computer_name.local.err
这可能是权限问题
检查是否有任何mysql实例正在运行
ps -ef | grep mysql
如果是,你应该停止它,或者杀死这个过程
kill -9 PID
其中PID是上一个命令输出时用户名旁边显示的数字
检查root的所有权
ls -laF / usr / local / var / mysql /
如果它是root的所有者你应该改变它mysql或your_user
sudo chown -R mysql / usr / local / var / mysql /
Tombart answered 2019-02-15T09:28:56Z
191 votes
您是否按照sudo的说明进行操作?
设置数据库以与您的用户帐户一起运行:
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
在另一个文件夹中设置基表,或使用其他用户运行mysqld,查看帮助sudo:
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
注意:如果失败,您可能忘记运行上面的前两个步骤
svs answered 2019-02-15T09:30:24Z
125 votes
我在我的Mac机器上遇到了同样的问题(正确地遵循了dev.work.err建议的所有安装步骤)。
删除错误文件为我修复了它:
dev.work.err(_mysql:wheel是我的主人名)
这是因为dev.work.err由_mysql:wheel所有,而不是我自己的用户名。列出错误文件可能也会修复它。
ukliviu answered 2019-02-15T09:31:15Z
77 votes
重启后我遇到了同样的问题。 以下是我修复它的方法:
sudo chown -R _mysql /usr/local/var/mysql
Sam Ruberti answered 2019-02-15T09:31:41Z
30 votes
这对我有用......
检查所有正在运行的MySQL进程:
$ ps aux | grep mysql
USER PID %CPU %MEM
_mysql 5970 0.0 0.4 ...
然后使用以下命令终止上面命令中列出的所有进程:
$ sudo kill -9 [PID]
将[PID]替换为上面列表中的单个PID,例如:5970。
对第一个命令看到的所有行都这样做。
然后你可以再次启动你的MySQL服务器:
mysql.server start
mikoop answered 2019-02-15T09:32:47Z
23 votes
我的错误文件告诉我,该端口可能正被另一个进程使用,但只是运行sudo mysql.server start为我解决了这个问题。
jaredsmith answered 2019-02-15T09:33:16Z
22 votes
尝试在错误关闭后启动msql时,可能会发生此错误。
看一下mysql错误日志文件。 如果它提到“检查您是否已经使用相同的数据或日志文件还没有其他mysqld进程”,那么您需要正确关闭该进程。
查看运行mysql的进程,使用以下命令:mysql.server start
您的输出应如下所示:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 4249 username 17u IPv4 0x7843d9d130469c0b 0t0 TCP localhost:mysql (LISTEN)
终止运行mysql的进程:mysql.server start
Kill -15向进程发送一个信号,以释放它锁定的所有资源并在之后终止进程。
现在mysql应该启动没有问题:mysql.server start
cosbor11 answered 2019-02-15T09:34:25Z
15 votes
我最近遇到过这个问题,但它之前有效,然后停止了。
这是因为我最初以root身份而不是我自己创建了_mysql。
修复是删除错误的日志文件(由_mysql拥有)。 再次启动它就通过了。
Roland Parnaso answered 2019-02-15T09:35:07Z
9 votes
对我有用的解决方案在这里:[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/*
Gabe answered 2019-02-15T09:35:43Z
9 votes
如果没有人帮助你,只需删除文件夹/usr/local/var/mysql,然后再次安装mysql brew reinstall mysql。
user3890355 answered 2019-02-15T09:36:13Z
8 votes
对我来说,修复很简单:
top
表明mysqld已经在运行了
sudo killall mysqld
然后允许该过程开始
Luke Madhanga answered 2019-02-15T09:36:56Z
7 votes
我正在使用,
全新的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目录中运行它并没有为它提供足够的上下文来运行它。
westonplatter answered 2019-02-15T09:38:29Z
7 votes
对我来说,解决方案是覆盖/更正/ etc / my / cnf中的数据目录。
我使用自述文件中提供的指示从源代码构建了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的目录“data”,但不是“var”; 这是不寻常的,因为多年来我必须确保var目录是mysql可写的。 所以我手动运行chown -R mysql /usr/local/mysql/var,然后尝试再次启动它。 仍然没有运气。 但更糟糕的是,var目录中没有.err文件 - 它位于“数据”目录中! 所以scripts / mysql_install_db在/ usr / local / mysql / var中设置了camp,但是应用程序的其余部分似乎想在/ usr / local / mysql / data中完成它的工作!
所以我刚编辑了/etc/my.cnf并在[mysqld]部分下面添加了一个指令,明确地将mysql的数据目录指向var(正如我通常所期望的那样),并且在这样做之后,mysqld启动了 精细。 要添加的指令如下所示:
datadir = / usr / local / mysql / var
为我工作。 希望它对你有所帮助。
SKelly answered 2019-02-15T09:40:17Z
6 votes
尝试在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
cenk answered 2019-02-15T09:41:17Z
6 votes
尝试删除ib_logfile0和ib_logfile1文件,然后再次运行mysql
rm /usr/local/var/mysql/ib_logfile0
rm /usr/local/var/mysql/ib_logfile1
这个对我有用。
user3890355 answered 2019-02-15T09:42:07Z
5 votes
以安全模式启动Mysql
/usr/local/mysql/bin/mysqld_safe start
要么
在MAC上任何mysql或mysqld任务(或其他)在您的活动监视器应用程序中。
或者检查你的错误
tail -f /usr/local/mysql/data/XXXXX-XXXXX-Pro.local.err
Saurabh Chandra Patel answered 2019-02-15T09:43:08Z
4 votes
似乎MySQL进程正在运行,因此您无法使用该端口。 您可以使用以下命令检查正在运行的MySQL进程:
ps auxf | grep mysql
如果你得到任何MySQL进程使用kill -9 PID终止该进程ID,然后尝试启动MySQL。
colin2328 answered 2019-02-15T09:43:56Z
4 votes
在我的情况下,由于访问错误日志文件的问题而发生错误。
以下两个命令可以帮助我解决问题。
sudo chown /usr/local/var/mysql/.err
sudo chmod 666 /usr/local/var/mysql/.err
FrankSu answered 2019-02-15T09:44:38Z
3 votes
我希望这对你有用。
检查错误日志后,我发现了这个:
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文件夹的“获取信息”菜单中的所有封闭文件夹 -5.5.21-osx10.6-x86_64。 你不需要知道别名,因为它只是一个别名。
文件夹的名称取决于您拥有的mysql的安装版本。
lu1s answered 2019-02-15T09:45:39Z
3 votes
有同样的问题,对我来说,它是在先前安装mysqld运行时进行brew删除。 似乎brew在卸载之前不会停止服务。
在检查.err文件后,我看到在终止旧服务后,可能正在运行另一个mysql副本的记录错误。 然后我能够重新启动新的mysql安装。
Nudge answered 2019-02-15T09:46:24Z
3 votes
试试这个..
导航到问题的父目录mysql.server start
mysql.server start(删除文件)
mysql.server start(生成新的* .local.pid文件,抛出的错误正在抱怨)
cd回到你的项目并使用mysql.server start重启mysql
Nick Sarafa answered 2019-02-15T09:47:34Z
3 votes
在这里发布的一些答案的帮助下,我找到了问题
首先,我跑
chown -R _mysql /var/log/mysql
所以我可以拥有root权限。
比我删除了xxxx.err文件
chown -R _mysql /var/log/mysql
在安全模式下启动MySQL之后
chown -R _mysql /var/log/mysql
它将尝试启动并将因错误而退出...将创建一个新的xxx.err文件,您需要读取它以查看错误原因
chown -R _mysql /var/log/mysql
在我的情况下,由于某种原因,它丢失了chown -R _mysql /var/log/mysql文件夹中的一些文件夹和文件...所以我创建了两个
chown -R _mysql /var/log/mysql
chown -R _mysql /var/log/mysql
chown -R _mysql /var/log/mysql
创建新文件后,您需要更改权限
chown -R _mysql /var/log/mysql
当采取所有这些步骤时,我的数据库立即开始工作......
希望这可以帮助其他人...关键是阅读错误和日志,发现什么是错的...
Paulo Griiettner answered 2019-02-15T09:49:55Z
2 votes
错误日志说的是什么? 我收到了这个错误,它最终成为my.cnf中的一个旧的无效设置,mysql错误日志表明了这一点。 如果配置设置不正确,错误日志应该至少指向正确的方向。
好吧,我认为OP已经修复了这一点......但希望这可以指出其他人在正确的方向上看到这个错误。
Brian Ray answered 2019-02-15T09:50:35Z
2 votes
我有同样的问题。 移动我的/etc/my.cnf文件为我工作。 我在这里得到了这些信息
Nealv answered 2019-02-15T09:51:07Z
2 votes
简单....
修复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/]上的人那里拿了这本指南
carloslozada answered 2019-02-15T09:52:34Z
2 votes
问题是权限一,它无法启动,因为它无法写入mac.err,因为它由其他人拥有。
确保/ usr / local / var / mysql文件夹归启动mysql的用户所有。 如果我启动mysql作为杰克它一切都很好。 但是,如果你以root用户身份启动它,它将创建一个千万不能写入的mac.err(由root拥有)文件,因此当你尝试重新启动它时,它将失败。
确保文件夹和文件归运行mysql.server start的用户所有
确保其他人不拥有mac.err或mac.pid。
Start是正确的用户。
Jack Sukerman answered 2019-02-15T09:53:38Z
1 votes
我试图重新安装mysql,我实际上忘了从旧安装中停止服务器。 为了解决这个问题,ps -ax | grep mysql,然后是kill [whatever PIDs].但是,再一次,它对每个人来说都是不同的。 像其他答案一样,请转到/usr/local/var/mysql/并检查您的.err日志文件。
Oliver answered 2019-02-15T09:54:11Z
1 votes
检查驱动器中是否还有空间。 当我的驱动器中没有剩余空间时,我遇到了这个问题。
thavan answered 2019-02-15T09:54:45Z
1 votes
在我的情况下,当我尝试启动MySQL时,我收到了同样的错误:The server quit without updating PID file.这是我做的修复它(使用终端):
goto /usr/local/var/mysql
sudo rm -rf hostname.err # Delete .err file
cd /usr/local/mysql/support-files
sudo mysql.server start # Success!
Shane Zhao answered 2019-02-15T09:55:19Z
1 votes
删除你在错误中显示的目录中找到的* .err文件并创建mysql文件是抱怨,重启mysql。
desveladisimo answered 2019-02-15T09:55:51Z