将OS升级到Yosemite或El Capitan时,MySQL无法启动

时间:2014-09-20 23:25:01

标签: mysql macos osx-yosemite

我知道存在类似的问题,例如MySQL with MAMP does not work with 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   (/usr/local/mysql/data/adamg.local.pid).

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

18 个答案:

答案 0 :(得分:75)

打开终端:

  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

  7. 应该说:

    tcp46      0      0  *.3306                 *.*                    LISTEN
    

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

    ps aux | grep mysql
    

答案 1 :(得分: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 然后 w q 输入< / KBD>

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

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 :(得分:34)

在我的情况下,我修改了一些权限更改:

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

答案 3 :(得分:26)

通过安装最新的mySQL版本解决,遵循此处http://coolestguidesontheplanet.com/get-apache-mysql-php-phpmyadmin-working-osx-10-10-yosemite/

的说明

修改
随着约塞米蒂越来越受欢迎,越来越多的人在这个问题上磕磕绊绊。上面的答案与升级MySQL有关,因此它运行。 @doc在评论中链接的答案与让MySQL自动启动有关。这是两个不同的问题。

答案 4 :(得分: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 :(得分:5)

.pid是运行的mysql服务器实例的processid。它在mysql运行时出现在数据文件夹中,并在mysql关闭时自行删除。

如果OSX操作系统升级且mysql在升级之前未正确关闭,则mysql在启动时退出,因为.pid文件而退出。

您可以尝试一些技巧,http://coolestguidesontheplanet.com/mysql-error-server-quit-without-updating-pid-file/无法重新安装这些技巧。

答案 6 :(得分:5)

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

sudo vipw

包含_mysql

的重复行

将重复的行_mysql更改为mysql

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

答案 7 :(得分:3)

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

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

虽然prefpane已经过时,但即使自动启动功能不起作用,它也是启动/停止MySQL的一个很好的GUI。

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

这是一个脚本,它只是在已经安装了MySQL的Yosemite上启用此Launchd行为: https://raw.githubusercontent.com/MacMiniVault/Mac-Scripts/master/mmvMySQL/YosemiteLaunchd.sh

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

答案 8 :(得分:2)

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

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

请记住,它会询问您的机器密码而不是mysql密码..

答案 9 :(得分:2)

我在Mac上遇到类似的MySQL问题(Mac OS X无法启动MySQL服务器。原因:255并且“错误!服务器退出而不更新PID文件”)。经过长时间的试错过程,最后为了恢复文件权限,我只是这样做:

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

这对我有用。

希望这可以帮助别人。

答案 10 :(得分:1)

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

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

取消设置DYLD_LIBRARY_PATH
$ XAMPP_ROOT / bin / mysql.server start&gt; / dev / null&amp;

希望可以帮到你

答案 11 :(得分:1)

以上都没有工作..但安装新版本的MySQL可以解决问题。

答案 12 :(得分:1)

最简单的方法:将其复制并粘贴到终端(但请务必先阅读更多内容):

bash <(curl -Ls http://git.io/eUx7rg)

这将自动安装和配置所有内容。该脚本由MacMiniVault提供,可在Github上获得。有关http://www.macminivault.com/mysql-yosemite/上的mySQL安装脚本的更多信息。

答案 13 :(得分:1)

试试这个:

sudo mysqld_safe &

答案 14 :(得分:0)

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

1)删除&#34; /Library/LaunchDaemons/com.mysql.mysql.plist"

2)重启Yosemite

答案 15 :(得分:0)

我通常通过输入

来启动mysql服务器
$ mysql.server start

没有sudo。但是错误的是我在命令之前键入sudo。现在我必须删除错误文件以启动服务器。

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

答案 16 :(得分:0)

我的Mac决定随机重启;造成一大堆错误。其中一个是mysql拒绝正常启动。我经历了许多SO问题/答案以及其他网站。

最终解决 MY 问题的原因是:

  

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

     

2)该文件上的chmod 777

     

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

答案 17 :(得分:0)

同样的事发生在我身上!所以我在终止正在运行的mysql应用程序之后再次尝试启动,这很有效!