将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:

  1. 检查MySQL系统的pref面板,如果它沿着“Warning,/ usr / local / mysql / data不属于'mysql'或'_mysql'

  2. 如果是的话,进入mysql文件夹cd / usr / local / mysql

  3. 做一个sudo chown -R _mysql数据/

  4. 这会将/ usr / local / mysql / data及其所有内容的所有权更改为拥有用户'_mysql'

  5. 检查MySQL系统的pref面板,应该说它现在正在运行,自动神奇地。 如果不能再次开始。

  6. 另一种方法来确认是做一个

    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应用程序后再次启动,而且工作正常!