在通过Brew安装MySQL后,出现错误 – 服务器退出而不更新PID文件
好吧,我已经搜遍了,花了不less时间安装,卸载,尝试各种select,但没有成功。
我使用Mac OS X Lion(10.7.3),并试图设置Python,MySQL。
我通过HomeBrew成功安装了Python和MySQL。 Python很好用。
在MySQL安装之后,我按照前两个步骤 – unset和mysql_install_db
命令。
现在,当我尝试启动mysql“mysql.server启动”,我得到以下错误
ERROR! The server quit without updating PID file (/usr/local/var/mysql/Brajeshwar.local.pid).
-
Brajeshwar
是我的机器上的用户名。
编辑2012年9月18日:正如凯恩所指出的 ,确保mysql
数据库之前做任何其他正确的设置。 请参阅“ 在mysql.server启动PID错误? “更多信息。
原来的答案保持历史的缘故:这很可能是一个权限问题。 检查/usr/local/var/mysql/*.err
。 我说:
120314 16:30:14 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 ./ibdata1 InnoDB: File operation call: 'open'. InnoDB: Cannot continue operation. 120314 16:30:14 mysqld_safe mysqld from pid file /usr/local/var/mysql/janmoesen.local.pid ended
我也必须这样做:
sudo chown _mysql /usr/local/var/mysql/*
我发现这是mysql
文件夹的权限问题。
chmod -R 777 /usr/local/var/mysql/
为我解决了它。
我在Mac 10.10.5优胜美地有这个问题
我做了什么来解决这个问题
cd /usr/local/var/mysql
sudo rm *.err && sudo rm *.pid
sudo reboot
sudo mysql.server start
2014年11月:如果您在Mac OS X Mavericks或Yosemite上的MySQL 5.6.x上发生此错误,并希望在本地使用MySQL(/tmp/mysql.sock是PHP PDO希望find该sock文件的位置),这里是固定的我:
1)取消注释默认的自制程序configuration文件行并编辑如下
$ sudo vi /usr/local/Cellar/mysql/5.6.21/my.cnf ... basedir = /usr/local/Cellar/mysql/5.6.21 datadir = /usr/local/var/mysql port = 3306 server_id = <UNIQUE_NUMBER_HERE_OR_LEAVE_COMMENTED_OUT> socket = /tmp/mysql.sock pid-file = /usr/local/var/mysql/[BOXNAME].local.pid ....
BOXNAME是你在系统偏好设置 – >networking中作为networking上计算机的唯一ID。
2)设置mysql datadir中所有文件的权限。 这些都是由[my_username]所有。 MySQL对此非常挑剔,并拒绝创buildpid文件,除非(用户_mysql)拥有该目录。
$ sudo chown -R _mysql:mysql /usr/local/var/mysql
3)使用bash助手/包装脚本启动MySQL:
$ sudo mysql.server start Starting MySQL . SUCCESS!
希望有所帮助。 如果上述不起作用,请尝试在Cellar / mysql / VERSION_ / bin /目录下手动运行mysqld_safe二进制文件,并检查设置(如果运行的话)
sudo /usr/local/Cellar/mysql/5.6.12/bin/mysqld_safe &
如果运行,你可以
ps aux | grep mysql
并看到类似的东西
[username] 6881 0.0 2.7 3081392 454836 ?? S 8:52AM 0:00.54 /usr/local/Cellar/mysql/5.6.21/bin/mysqld --basedir=/usr/local/Cellar/mysql/5.6.21 --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/Cellar/mysql/5.6.21/lib/plugin --verbose --log-error=/usr/local/var/mysql/BOXNAME.local.err --pid-file=/usr/local/var/mysql/BOXNAME.local.pid
我不知道为什么这对我有用,但它显示了我从哪里得到my.cnfconfiguration文件选项。 您也可以使用命令行选项尝试手动启动mysqld时进行故障排除。
如果你运行pipe理使用mysqld_safe运行MySQL服务器,你可能必须这样做,closures它之前尝试mysql.server bash助手。 抵制杀死-9 [PID]的冲动,因为你可能会破坏你的数据。
mysqladmin -uroot shutdown
祝你好运!
我在OS X El Capitan上遇到了同样的问题,下面是为我修复的terminal命令序列。
删除错误文件(您将不得不根据您的设置更改path)
sudo rm /usr/local/mysql/data/*.err
find仍在运行的mysql进程的信息并杀死它:
ps -A | grep -m1 mysql | awk '{print $1}' | sudo xargs kill -9
现在重新启动MySQL:
/usr/local/mysql/support-files/mysql.server start
我结束了完全重新安装的MySQL,终于解决了。
brew remove mysql brew cleanup --force launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist sudo rm -rf /usr/local/var/mysql brew install mysql mysqld --initialize --explicit_defaults_for_timestamp mysql.server start # no sudo!
这对我工作:
sudo chmod -R 777 /usr/local/var/mysql/ sudo /usr/local/mysql/support-files/mysql.server start
如果我没有记错,这是一个权限问题。 尝试“touch”和“chmod”pid文件或文件所在的文件夹。
我的问题是,我作为sudo一次启动服务器,然后尝试作为本地用户重新启动。
这里mysql不能写入由root拥有的'.err'文件。 我必须删除该文件并重新启动服务器:
sudo rm /usr/local/var/mysql/*.err mysql.server start
这对我在10.12.2:
$ rm /usr/local/var/mysql/*.err
然后
$ brew services restart mysql
对我来说,它适用于:
unset TMPDIR mysql_install_db --user=`whoami` --basedir="$(brew --prefix mariadb)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
我在Mac上遇到了与MySQL类似的问题(Mac OS X无法启动MySQL服务器,原因:255,也是“ERROR!服务器退出而没有更新PID文件”)。 经过漫长的试错过程,最后为了恢复文件权限,我只是这样做了:
启动Disk Utilities.app
在左侧面板上select我的驱动器
点击“修复磁盘权限”button
这为我做了诡计。 希望这可以帮助别人。
对我有效的是:
- 转到你的mysql安装目录
-
sudo chmod -R 777 data
- 然后回去一个目录
-
cd support-files/
-
sudo ./mysql.server start
之后,服务器开始运行。
但是这个方法的问题是每次我想现在启动mysql的时候我都要重复这个。 不知道为什么突然出现这样的行为。
这是文件权限问题。 检查磁盘权限和修复。
Osx => Cmd + Space =>磁盘实用程序=>validation磁盘权限。
修复磁盘权限后validation完成。 mysql.server启动命令工作成功。
sudo chmod -R 777 /usr/local/var/mysql/
为我工作。
我遇到过同样的问题:
但情况是,每当我尝试input:
/usr/local/mysql/support-files/mysql.server start
创build一个名为localhost.pid
的文件,而不是在错误中声明的iMax0.local.pid
:
ERROR! The server quit without updating PID file (/usr/local/mysql/data/iMax0.local.pid).
我的解决scheme是复制localhost.pid
并将其重命名为iMax0.local.pid
。
我在OSX El Capitan上的解决scheme是:
sudo chmod ugo+w /tmp
它突然被打破了。
错误是:
ERROR! The server quit without updating PID file
日志显示:
Can't start server : Bind on unix socket: Permission denied
注意,在OSX下,默认情况下不存在my.cnf
文件,默认情况下不需要,这是我不知道的。 祝你好运!
$ sudo mysql.server restart
这个对我有用。
我有类似的问题。 但下面的命令救了我。
cd /usr/local/Cellar sudo chown _mysql mysql
没有答案为我工作。 不过,我只是做了sudo mysql.server start
,它很好地工作。
此外,对我来说,它没有显示* .err文件中的权限问题。
findusr / local / var / mysql / your_computer_name.local.err文件,并了解有关错误的更多信息
位置:/usr/local/var/mysql/your_computer_name.local.err
这可能是权限问题
- 查找mysql是否正在运行并杀死它
ps -ef | grep mysql
kill -9 PID
其中PID是第二列值2.检查mysql的所有权
ls -laF / usr / local / var / mysql /
if it is owned by root, change it mysql or your user name
sudo chown -R mysql / usr / local / var / mysql /
我在Linux上遇到了这个问题,但是原因与任何mysql安装都有关。 在我的情况下,服务器在启动完成之前崩溃,并且更新了pid文件。 当直接启动mysqld而不是通过“service mysql start”时,错误消息被看到。
在我的情况下,原因是日志文件所在的分区已满。 删除日志文件允许mysql再次启动。 要testing这个问题,请转到您的mysql活动日志的位置,然后执行df .
。
试试这个(Mac)
第1步: ps -ax | grep mysql
ps -ax | grep mysql
然后杀死4位数的PID号码
第二步: kill 1965
第3步: mysq.server start
或者很难find这些PID号码,请尝试下面的内容
再一步: ps -ax | grep mysql
ps -ax | grep mysql
第二步: killall
再次步骤3: mysq.server start
从源代码安装时,请按照文件INSTALL-SOURCE
的说明进行操作
安装说明在section 2.8
中给出
安装完后,用ps aux |检查mysql是否有进程运行 grep mysql
你会发现这样的
root 1817 0.0 0.0 108336 1228 ? S Jan21 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mail.gaurav.local.pid mysql 2141 0.0 1.2 497660 24588 ? Sl Jan21 0:26 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/mail.gaurav.local.err --pid-file=/usr/local/mysql/data/mail.gaurav.local.pid --socket=/tmp/mysql.sock --port=3306 root 5659 0.0 0.0 103256 840 pts/13 S+ 11:30 0:00 grep mysql
kill
所有与mysql
有关的进程,然后尝试启动mysql服务器
首先mv -f /var/lib/mysql /var/lib/mysql.bak
然后试试命令mysql_install_db --user=mysql --ldata=[destination]
用数据目录replace目的地,之后用/etc/init.d/mysql restart