将OSX升级到优胜美地或El Capitan时MySQL无法启动


67

我知道存在类似的问题,例如带有MAMP的MySQL不适用于OSX Yosemite 10.10。但是,我的计算机上确实没有安装MAMP,也没有安装XAMPP。

当我尝试从PrefPane启动mySQL时,没有任何反应。

当我尝试通过命令行从命令行启动mqSQL时sudo /usr/local/mysql/support-files/mysql.server start

Starting MySQL . ERROR! The server quit without updating PID file (/usr/local/mysql/data/adamg.local.pid).

任何和所有帮助将不胜感激。我可以提供任何必要的文件输出。


1
在这篇文章中可以找到有关如何在优胜美地启动MySQL的详细信息
davidcondrey 2014年

Answers:


77

打开一个终端:

  1. 检查MySQL系统偏好设置面板,如果提示“警告,/ usr / local / mysql / data不属于'mysql'或'_mysql'

  2. 如果是,请转到mysql文件夹cd / usr / local / mysql

  3. 做一个sudo chown -R _mysql data /

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

  5. 检查MySQL系统偏好设置面板,应该说它正在自动神奇地运行。如果没有重新启动。

  6. 另一种确认方式是

    netstat -na | grep 3306

应该说:

tcp46      0      0  *.3306                 *.*                    LISTEN

要查看mysqld的进程所有者和进程ID:

ps aux | grep mysql

8
谢谢,这在OSX 10.11 El Capitan中也对我有用。
杰里米·卡尔森

第二次,我在升级另一台机器时偶然发现了这个答案。再次感谢!
fish鱼

同样的事情发生在我身上,这解决了它!我什么都没升级,为什么以前没用?有什么改变所有权了吗?
navid 2013年

sudo chown -R _mysql data/升级MySQL后,在埃尔卡皮坦的伎俩,我从5.6到5.7 ...只是有一点要注意......我不得不强制退出所有mysqld处理器的活动监控...感谢
圣保罗Griiettner

60

长话短说,您需要创建启动文件。因此,从终端:

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: wq!enter

然后,您需要授予文件正确的权限,并将其设置为在启动时加载。

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

就是这样。


2
文件的前2行应为: <?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">
tfentonz 2014年

1
实际上,我必须选择答案,以免造成混淆。这个问题不是要让mySQL自动启动。而是因为mySQL需要升级。不过,您的答案肯定适用于前者
Adam_G 2014年

就我而言,@ Adam_G不必升级MySQL。我一直使用升级到优胜美地之前使用的相同版本。
阿瑞斯2014年

得到它了。就我而言,重启不是问题,尽管这是一个问题。也许这是因为当优胜美地仍处于测试阶段时,这个问题对我来说还是发生了。
Adam_G 2014年

对于我的游戏,MySQL不会在重新启动时自动启动,因此我完全按照您在此处列出的内容进行操作,并且运行良好!谢谢:)
double_j 2015年

34

就我而言,我对其进行了一些权限更改来解决:

sudo chown -R _mysql:_mysql /usr/local/var/mysql
sudo mysql.server start

我希望它可以帮助其他人...

注意:根据Mert Mertin的评论:

对于capitan,它是sudo chown -R _mysql:_mysql / usr / local / var / mysql


1
谢谢,为我工作!我根据自制软件修复了权限问题,但它与/ usr / local中安装的其他内容配合使用效果不佳。顺便说一句,我的命令是:sudo chown -R _mysql:_mysql / usr / local / mysql /
rlorenzo

1
对于capitan,它是sudo chown -R _mysql:_mysql / usr / local / var / mysql
Mert Metin

1
我不得不跑步sudo chown -R _mysql:_mysql /usr/local/mysql,仍然没有工作。
Siddharth

26

通过安装最新的mySQL版本来解决,请按照此处的说明进行操作http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/

编辑
随着优胜美地的流行,越来越多的人在这个问题上绊脚石。上面的答案与升级MySQL有关,以便它可以运行。@doc在注释中链接的答案与使MySQL自动启动有关。这些是2个独立的问题。


4
sudo /usr/local/mysql/support-files/mysql.server start是在文章中找到的答案,该文章解释了在当前版本的MySQL中自动启动脚本失败。要使MySQL在OSX启动时自动加载,请参见:stackoverflow.com/a/26492593/922522
Justin

2
值得一提的是,mysql.com上的安装程序将用“安装失败”消息轰炸。实际上,该软件本身已安装为OK。唯一的问题是“重新启动MySQL”脚本。@Ares答案中的上述与plist相关的技巧(也在“酷指南”文章中有所说明)对此进行了修复。
Trutane 2014年

7

从命令行执行以下命令...

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


5

您只需要创建用户mysql(mysql安装脚本创建_mysql)

sudo vipw

包含的重复行 _mysql

更改为复制线_mysql,以mysql

sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
.. SUCCESS!

3

重新安装修复了该问题,因为安装程序创建了一个新的MySQL实例,并且/ usr / local / mysql的符号链接现在指向一个没有现有pid的数据目录。

值得注意的是,mysql prefpane和mysql.server脚本使用pid的主机名,因此更改主机名可能会导致this问题。

尽管prefpane已经过时,但即使自动启动功能不起作用,它还是一个不错的GUI,它使某人可以启动/停止MySQL。

我采用了一种混合方法,其中我调整了MySQL安装脚本以使用Launched自动启动MySQL,但是plist实际上调用了mysql.server脚本。这样,prefpane仍可用于按需启动/停止MySQL,并且尝试执行简单的MySQL重新启动不会太令人困惑。

这是仅在已安装MySQL的情况下在Yosemite上启用此Launched行为的脚本:https : //raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/YosemiteLaunchd.sh

这是处理MySQL整个自动化安装的脚本:https : //raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/mmvmysql.sh


非常感谢@Jon。我尝试了以上所有内容,但没有一个使mysql在我的计算机上工作。因此,我彻底清理了所有可以在系统中找到的有关mysql的内容,并运行了安装脚本,这很有帮助!只是救命!!!
yeelan'3

2

如果尝试安装新版本,有时会丢失以前的数据。.请在终端中使用以下内容,我保证mySql将立即开始运行。

sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start

记住,它将要求您输入机器密码而不是mysql密码。


2

我在Mac上的MySQL上也遇到了类似的问题(Mac Os X无法启动MySQL Server。原因:255,并且“ ERROR!服务器在不更新PID文件的情况下退出了”)。经过长时间的反复试验,最后为了恢复文件权限,我只需要这样做:

*启动Disk Utilities.app
*在左侧面板上选择我的驱动器
*单击“修复磁盘权限”按钮

这对我有用。

希望这可以帮助其他人。


1

尝试这个:

sudo mysqld_safe &

1
单独的代码块通常不是有用的答案。如果可以的话,请编辑您的答案并解释所显示的代码的功能,以及该代码为何/如何回答问题,确实可以提供帮助。
Lea Cohen


1

您想要修复它可以使用TextEdit编辑文件“ / Applications / XAMPP / xamppfiles / xampp”。

查找文本“ $ XAMPP_ROOT / bin / mysql.server start> / dev / null&”,
并在其顶部添加“ unset DYLD_LIBRARY_PATH”。它应该看起来像:

取消设置DYLD_LIBRARY_PATH
$ XAMPP_ROOT / bin / mysql.server开始> / dev / null&

希望可以帮到你


1

上面的方法都不起作用..但是安装新版本的MySQL可以解决问题。


0

2个步骤解决了我的问题:

1)删除“ /Library/LaunchDaemons/com.mysql.mysql.plist”

2)重新启动优胜美地


0

我通常通过键入启动mysql服务器

$ mysql.server start

没有须藤。但是错误的是我在命令前输入sudo。现在,我必须删除错误文件才能启动服务器。

$ sudo rm /usr/local/var/mysql/`hostname`.err

0

我的Mac决定随机重启。导致大量错误。其中之一是mysql拒绝正确启动。我经历了许多SO问题/解答以及其他站点。

最终解决我的问题的最终结果是:

1)创建文件(/usr/local/mysql/data/.local.pid

2)该文件上的chmod 777

3)执行mysql.server启动(我的位于/usr/local/bin/mysql.server)


0

我也一样 因此,在终止正在运行的mysql应用程序之后,我尝试再次启动,并且成功了!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.