将OSX升级到Yosemite或El Capitan时,MySQL不会启动
我知道存在类似的问题,例如MAMP的MySQL不适用于OSX Yosemite 10.10 。 但是,我有MAMP,也没有安装在我的电脑上的XAMPP。
当我尝试从PrefPane启动mySQL时,没有任何反应。
当我尝试通过sudo /usr/local/mysql/support-files/mysql.server start
从命令行启动mqSQL时,我得到:
Starting MySQL . ERROR! The server quit without updating PID file
Starting MySQL . ERROR! The server quit without updating PID file
(/usr/local/mysql/data/adamg.local.pid).
任何和所有的帮助,将不胜感激。 我可以提供任何必要的文件输出。
打开terminal:
-
检查MySQL系统的pref面板,如果它沿着“Warning,/ usr / local / mysql / data不属于'mysql'或'_mysql'
-
如果是的话,进入mysql文件夹cd / usr / local / mysql
-
做一个sudo chown -R _mysql数据/
-
这会将/ usr / local / mysql / data及其所有内容的所有权更改为拥有用户'_mysql'
-
检查MySQL系统的pref面板,应该说它现在正在运行,自动神奇地。 如果不能再次开始。
-
另一种方法来确认是做一个
netstat -na | grep 3306
应该说:
tcp46 0 0 *.3306 *.* LISTEN
要查看mysqld的进程所有者和进程ID,请执行以下操作:
ps aux | grep mysql
长话短说,你需要创build一个启动文件。 所以,从docker:
sudo vi /Library/LaunchDaemons/com.mysql.mysql.plist
(如果您对vi不熟悉,请按i开始插入文本)
这应该是你的文件的内容:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <true /> <key>Label</key> <string>com.mysql.mysqld</string> <key>ProgramArguments</key> <array> <string>/usr/local/mysql/bin/mysqld_safe</string> <string>--user=mysql</string> </array> </dict> </plist>
按esc键: w q ! input
然后你需要给文件正确的权限,并将其设置为在启动时加载。
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
就是这样。
在我的情况下,我修复了一点权限的变化:
sudo chown -R _mysql:_mysql /usr/local/var/mysql sudo mysql.server start
我希望它能帮助别人…
注意:根据Mert Mertin的评论:
对于el capitan,它是sudo chown -R _mysql:_mysql / usr / local / var / mysql
通过安装最新的mySQL版本解决,按照这里的说明http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/
编辑
随着优胜美地的普及,越来越多的人在这个问题上磕磕绊绊。 上面的答案与升级MySQL有关,因此它可以运行。 在注释中由@doc链接的答案与让MySQL自动启动有关。 这是两个不同的问题。
从命令行执行以下命令…
sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
然后使用启动mysql服务器
sudo /usr/local/mysql/support-files/mysql.server start
.pid是正在运行的mysql服务器实例的processid。 当mysql正在运行时它出现在数据文件夹中,并在mysqlclosures时自行删除。
如果在升级之前升级了OSX操作系统并且mysql没有正常closures,那么mysql在退出时会退出,因为.pid文件而退出。
有几个技巧,你可以尝试, http://coolestguidesontheplanet.com/mysql-error-server-quit-without-updating-pid-file/失败这些需要重新安装。;
你只需要创build用户mysql
(mysql安装脚本创build_mysql)
sudo vipw
包含_mysql
重复行
将重复的行_mysql
更改为mysql
sudo /usr/local/mysql/support-files/mysql.server start Starting MySQL .. SUCCESS!
重新安装修复它,因为安装程序创build了一个新的MySQL实例,现在指向/ usr / local / mysql的符号链接指向没有现有pid的数据目录。
值得注意的是,mysql prefpane和mysql.server脚本使用pid的主机名,所以更改主机名可能会导致这个问题。
虽然prefpane已过时,但是即使自动启动function不起作用,对于某人来说启动/停止MySQL也是一个不错的GUI。
我已经采取了混合的方法,我已经调整了我的MySQL安装脚本来使用Launchd来自动启动MySQL,但是plist实际上调用了mysql.server脚本。 这样,预发送仍然可以用来按需启动/停止MySQL,并且尝试执行简单的MySQL重新启动不会太混乱。
这里是脚本,只是启用这个Launchd行为已经安装了MySQL的优胜美地: https : //raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/YosemiteLaunchd.sh
这是处理MySQL的整个自动化安装的脚本: https : //raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/mmvmysql.sh
如果您尝试安装新版本,有时会错过以前的数据。请在terminal中使用以下内容,我保证mySql将立即开始运行。
sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start
请记住,它会要求您的机器密码,而不是mysql密码。
我在Mac上遇到了与MySQL类似的问题(Mac OS X无法启动MySQL服务器,原因:255,也是“ERROR!服务器退出而没有更新PID文件”)。 经过漫长的试错过程,最后为了恢复文件权限,我只是这样做了:
*启动磁盘Utilities.app
*在左侧面板上select我的驱动器
*点击“修复磁盘权限”button
这为我做了诡计。
希望这可以帮助别人。
尝试这个:
sudo mysqld_safe &
最简单的方法是:复制并粘贴到terminal(但请务必先阅读更多内容):
bash <(curl -Ls http://git.io/eUx7rg)
这将自动安装和configuration一切。 该脚本由MacMiniVault提供,并在Github上提供 。 有关http://www.macminivault.com/mysql-yosemite/上的mySQL安装脚本的更多信息。;
你想修复它可以用TextEdit编辑文件“/ Applications / XAMPP / xamppfiles / xampp”。
查找文本“$ XAMPP_ROOT / bin / mysql.server start> / dev / null&”
并在其上添加“取消设置DYLD_LIBRARY_PATH”。 它应该看起来像:
取消设置DYLD_LIBRARY_PATH
$ XAMPP_ROOT / bin / mysql.server start> / dev / null&
希望能帮助你
以上都没有工作..但安装一个新版本的MySQL有窍门。
2个步骤解决了我的问题:
1)删除“/Library/LaunchDaemons/com.mysql.mysql.plist”
2)重新启动优胜美地
我通常通过键入来启动mysql服务器
$ mysql.server start
没有sudo。 但是在错误之前,我在命令之前inputsudo。 现在我必须删除错误文件来启动服务器。
$ sudo rm /usr/local/var/mysql/`hostname`.err
我的Mac决定随机重新启动; 造成一整个错误。 其中之一,是mysql拒绝正常启动。 我经历了许多SO问题以及其他网站。
最终结果是解决我的问题是这样的:
1)创build文件(/usr/local/mysql/data/.local.pid
2)在该文件上的chmod 777
3)执行mysql.server启动(我的位于/ usr / local / bin / mysql.server)
我也是一样 所以我试图在终止正在运行的mysql应用程序后再次启动,而且工作正常!