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

Ada*_*m_G 66 mysql macos osx-yosemite

我知道存在类似的问题,例如MySQL与MAMP不兼容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).

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

小智 76

打开终端:

  1. 检查MySQL系统首选面板,如果它说"警告,/ 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系统首选面板,它应该说它现在正在运行,自动神奇.如果不重新开始.

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

    netstat -na | grep 3306

它应该说:

tcp46      0      0  *.3306                 *.*                    LISTEN
Run Code Online (Sandbox Code Playgroud)

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

ps aux | grep mysql
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这对我来说也适用于OSX 10.11 El Capitan. (8认同)

Are*_*res 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>
Run Code Online (Sandbox Code Playgroud)

按下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
Run Code Online (Sandbox Code Playgroud)

就是这样.

  • 文件的前两行应该是:`<?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">` (2认同)

Wil*_*ils 34

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

sudo chown -R _mysql:_mysql /usr/local/var/mysql
sudo mysql.server start
Run Code Online (Sandbox Code Playgroud)

我希望它可以帮助别人......

注:根据Mert Mertin评论:

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


Ada*_*m_G 26

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

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

  • `sudo /usr/local/mysql/support-files/mysql.server start`是文章中的答案,它解释了自动启动脚本在当前版本的MySQL中失败.要在启动OSX时让MySQL自动加载,请参阅:http://stackoverflow.com/a/26492593/922522 (4认同)
  • 值得注意的是,mysql.com的安装程序将弹出"安装失败"消息.实际上,软件本身安装得很好.唯一的问题是"重启时启动MySQL"脚本.@Ares答案中的上述与plist相关的提示(也在Cool Guides文章中也有提及)修复了这一点. (2认同)

Kay*_*ayV 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
Run Code Online (Sandbox Code Playgroud)

然后使用启动mysql服务器

sudo /usr/local/mysql/support-files/mysql.server start
Run Code Online (Sandbox Code Playgroud)


nei*_*gee 5

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

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

您可以尝试一些技巧,http://coolestguidesontheplanet.com/mysql-error-server-quit-without-updating-pid-file/失败,这些都需要重新安装.


小智 5

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

sudo vipw

包含重复的行 _mysql

更改为复制线_mysql,以mysql

sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
.. SUCCESS!
Run Code Online (Sandbox Code Playgroud)