无法在Mac OS 10.6 Snow Leopard中启动MySql

35

我已经在Google上搜索过,但没有找到任何有关苹果新操作系统Snow Leopard的新信息和实用建议。 我想知道是不是我的问题还是我需要做些什么?

这是我所做的:

从mysql网站下载: http://dev.mysql.com/downloads/mysql/5.1.html#macosx-dmg 我选择:Mac OS X 10.5 (x86_64)

我运行了所有包并安装了它们。 现在我肯定已经安装了mysql。

/usr/local/mysql/

但是当我尝试从首选项面板启动它时,它总是处于停止状态。 当我在终端中尝试执行以下操作时:

/usr/local/mysql/bin/mysql
我得到了以下错误信息:

-bash: /usr/local/mysql/bin/mysql: 可执行文件的CPU类型有误

请问出了什么问题?非常感谢任何帮助。谢谢。
17个回答

27

也许这个回答会有所帮助:

mysql5.58 unstart server in mac os 10.6.5

我刚刚在 Mac os X 10.6.5 上安装了 MySQL 5.5.8 (mysql-5.5.8-osx10.6-x86_64.dmg),也遇到了 MySQL 无法启动的问题。

阅读了这篇帖子之后:http://forums.mysql.com/read.php?11,399397,399606#msg-399606,按照建议编辑文件后,一切都开始正常工作了。

我也这样做了。

sudo chown -R root:wheel /Library/StartupItems/MySQLCOM

阅读https://discussions.apple.com/message/12820394后,我发现在重启我的Mac OSx 10.6.6之后,它一直询问有关权限不足的问题。上面提到的方法解决了这个问题。

现在一切正常运行。


16

在升级到Snow Leopard后,您必须重新安装mySQL,并删除任何以前的版本以及首选项面板中以前的启动项。 安装86_64 10.5...我发现其他版本对我没有用。

  1. 下载MySQL版本Mac OS X 10.5(x86_64),位于http://dev.mysql.com/downloads/mysql/5.4.html#macosx-dmg
  2. 安装启动项(按照说明操作)
  3. 然后安装beta版本(按照说明操作)
  4. 如果您想在首选项面板中启动,请安装mySQL.prefpane。我发现除非您在首选项面板中启动mySQL,否则无法从终端运行SQL。

升级到Snow Leopard后,是否真的需要重新安装MySQL?我没有这样做,只需从.bash_profile中删除所有对MacPorts安装的引用,MySQL就可以正常运行,并且可以从“系统偏好设置”面板启动和停止。如果它没出问题,就不要修复它。 - Elise van Looij
3
我们如何“从首选项面板中删除任何先前版本以及之前的启动项?” - Gezim

11

好的...最终我安装成功了! 为什么?或者说我做了什么? 嗯,我不太确定。 首先我下载并安装了这个包(从磁盘映像中安装了所有文件(3)), 但我无法启动它。(无论是从首选项面板还是从终端)

其次我卸载了它,并通过mac ports重新安装了一遍。

再次出现相同的问题。无法启动。

现在我再次删除了它,并从另一个站点(它是一个镜像)安装了该包。(我不确定是否是完全相同的包,但我认为是)

站点:

http://www.mmisoftware.co.uk/weblog/2009/08/29/mac-os-x-10-6-snow-leopard-and-mysql/

链接:

http://mirror.services.wisc.edu/mysql/Downloads/MySQL-5.1/mysql-5.1.37-osx10.5-x86.dmg

1.- 安装mysql-5.1.37-osx10.5-x86.pkg

2.- 安装MySQLStartupItem.pkg

3.- 安装MySQL.prefpanel

这次一切都很好(甚至是首选项面板!) 没有什么特别的,我不知道前两次发生了什么。 但谢谢大家。 问候。


如果您有时间,比较这两个软件包(一个失败的和一个正常工作的)可能是值得的。它们的名称相同吗?如果是这样,它们是否是相同的文件(在它们上运行 diff 命令)。我认为不是;通知镜像站点有问题的失败文件可能是值得的。 - Dancrumb
我也经历了同样的事情。一直收到mysqld.sock错误。安装MySQL.prefpanel解决了我的问题。真是太痛苦了。 - Nick Van Brunt

9
为了使MySQL再次正常工作(我还没有查看启动),无需重新安装。 我通过执行以下操作使我的副本正常工作:
您需要做的是:
sudo ln -s /usr/local/mysql-5.0.51a-osx10.5-x86_64 /usr/local/mysql
它将在/usr/local/mysql目录和MySQL位置之间创建符号链接。这很关键,因为除非您在运行Leopard升级之前仔细备份了所有使用mysqldump的数据库,否则那里存储了所有数据,并且只从整个硬盘备份中恢复它将很困难。
现在您可以转到正确的目录并启动mysql:
cd /usr/local/mysql-5.0.51a-osx10.5-x86_64 sudo ./bin/mysqld_safe 您现在可以按CTRL-Z回到shell。要确保mysqld正在运行,请键入:
sudo ps -A|grep mysql
我得到了像这样的东西:
1220 ttys000 0:00.02 /bin/sh ./bin/mysqld_safe 1240 ttys000 0:00.39 /usr/local/mysql-5.0.51a-osx10.5-x86_64/bin/mysqld --basedir=/usr/local/mysql-5.0.51a-osx10.5-x86_64 --datadir=/usr/local/mysql-5.0.51a-osx10.5-x86_64/data --user=mysql --pid-file=/usr/local/mysql-5.0.51a-osx10.5-x86_64/data/dkmac-2.home.pid --port=3306 --socket=/tmp/mysql.soc
我的MySQL副本现在似乎工作正常。最起码,它足以在所有数据库上运行mysqldump,因此如果我需要通过其他方式升级mysql并转储数据目录,则仍然处于良好状态。

这对我来说非常有效。谢谢你帮我省下了几个小时的麻烦! - Mike
对我也非常有效,谢谢。 - carlos

5
我猜你的iMac不是64位的(你在另一个帖子中说它是一个原始的白色intel iMac)。尝试使用32位版本的MySQL - 我认为它应该可以直接安装在64位版本上。
如何确定您基于Intel的Mac是否具有32位或64位处理器 http://support.apple.com/kb/HT3696

5
首先,我想说我真的非常喜欢互联网社区所做的一切,为每个人提供答案。虽然我不经常发帖,但这里和其他许多论坛上的每个人都帮了我很多!当然,没有一个人给我正确的答案,但是以下是我在Snow Leopard 10.6上花费两天时间尝试安装MySQL 5.5.9的噩梦的独特解决方案。请跳至底部获取解决方案。 以下是发生的事情。
最近我的服务器崩溃了。服务器被重建后,MySQL 5.5.8当然无法正常工作。真是一件毫无价值的东西。我在另一台机器上安装了5.1.54。那也是一件痛苦的事情,但不像这样。
我尝试使用mysql.org的dmg安装,使用macports安装mysql5,卸载并试图恢复到5.1.54(无法找到包含该信息的receipt文件,即使我按照说明进行操作)。删除与mysql相关的所有内容,然后重新安装5.5.8,一切顺利!直到我重新启动... ☹ 我查看了系统偏好设置中的mysql面板,并发现mysql服务器没有启动。(解决方案请参见结尾)
我的第一个错误(非常常见)包括: ERROR 2002(HY000):无法通过套接字'/var/run/mysqld/mysql.sock'连接到本地MySQL服务器 以及与mysql.sock相关的许多其他极其常见的问题 http://forums.mysql.com/read.php?11,9689,13272 以下是我尝试过的方法: 1)创建/etc/my.cnf文件,并使用正确的路径指向mysql.sock。我甚至尝试直接使用vi修改mysql.server。修改php.ini毫无价值。因为MySQL没有启动,所以它根本没有创建mysql.sock。也许你可以指向它被创建的目录,而不是实际的完整文件路径,即不是/tmp/mysql.sock而是/tmp。虽然有人建议这样做,但并没有起作用,因为没有mysqld,也就没有mysql.sock。 2)Basedir和datadir的修改无法工作,因为没有mysql.sock可供指向。 为什么?因为mysql守护程序没有启动。没有任何东西来启动mysqld,从而创建mysql.sock,我注定要失败。它们是解决方案的重要组成部分,但如果您尝试它们仍然出现错误,那么您将知道原因。 3)sudo chown -R root:wheel /Library/StartupItems/MySQLCOM/ 无法解决我的问题。最终,我将该文件夹及其所有项目都设置为root:wheel,因为这是许多建议中的一项,而且它起作用了。也许它可以保持_mysql,但wheel也可以。

4)从另一台机器上复制mysql.sock。 不起作用。我在新机器上搜索了很久,也没有找到mysql.sock。我使用的是find / | grep mysql.sock,因为locate mysql什么都找不到。此外,我尝试了很多不同的方法,但它们并没有更新足够快以找到我的新安装。即使你将其打包,你也不能复制mysql.sock,因为它是一个0字节的文件。

解决方案:最后,我偶然发现了解决方案。当我处于正确的bin目录中时,我只需在命令行中键入mysqld。它说有另一个进程正在运行。_mysql正在生成一个进程,我可以在Activity Monitor中看到它。我杀死了活动的mysql进程,当我再次键入mysqld时,我发现它正在创建我的mysql.sock文件在/private/tmp/mysql.sock中。

mysql pref面板无法在登录时启动正确的进程,所以我禁用了它。它无法启动mysql,因为没有创建mysql.sock。

那时,我已经发现mysqld创建mysql.sock。然后我找到了/opt/local/mysql/,并在终端窗口中键入“open bin”。这打开了mysqld所在的目录。

我在我的帐户设置中的系统首选项中找到了登录项目,并将mysqld文件拖放到启动项目中。那样就行了。终于!

它运行得非常流畅,因为mysqld在登录时启动,这意味着mysql.sock正在创建,所以不会再出现找不到mysql.sock的错误。


这解决了我的噩梦!非常感谢您抽出时间写下这篇文章。是您让这个社区变得如此出色。 - Neil
适当的二进制目录是哪个?是哪一个?此外,我的系统上没有 /opt/local。 - pal4life

4

打开终端

cd /usr/local/mysql/support-files
sudo nano mysql.server

找到以下行:

basedir=
datadir=

将它们更改为:

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data


太好了,这解决了启动问题。谢谢! - shacker

2
除了确保安装了64位版本之外,还要检查符号链接 '/usr/local/mysql' 是否指向正确的安装版本:
lrwxr-xr-x   1 root  wheel    27B Aug 29 01:24 mysql -> mysql-5.1.37-osx10.5-x86_64
drwxr-xr-x   3 root  wheel   102B Aug 29 01:25 mysql-5.1.30-osx10.5-x86
drwxr-xr-x  11 root  wheel   374B Aug 29 15:59 mysql-5.1.37-osx10.5-x86_64
drwxr-xr-x  17 root  wheel   578B Jul 13 22:06 mysql-5.1.37-osx10.5-x86_64.old

此外,我发现即使我使用了来自MySQL的pkg文件进行安装,其他许多库也无法针对该安装构建。解决方案是按照这里找到的从源代码中构建MySQL的步骤。您可以使用以下命令手动以root身份启动它:

/usr/loca/mysql/bin/mysqld_safe [whatever options you use]

现在,要使首选项面板工作,我做了以下操作:

  1. 从mysql.com安装64位版本的MySQL Server包。
  2. 将软件包从mysql-5.1.37-osx10.5-x86_64移动到mysql-5.1.37-osx10.5-x86_64.old。
  3. 按照这些说明手动编译和安装MySQL。
  4. 执行以下命令:

    sudo cp -R /usr/local/mysql-5.1.37-osx10.5-x86_64.old/support-files /usr/local/mysql/。

  5. 打开MySQL首选项面板,完成!它可以正常工作了。


2
我按照第四个答案完全相同的步骤进行了操作...很令人沮丧,但当我安装了测试版并彻底删除了所有内容后,它终于起作用了。
卸载帮助:
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/com.mysql*

然后编辑 /etc/hostconfig 文件并删除 MYSQLCOM=-YES- 这一行。

还要前往 /Library/Receipts 目录,查找名为“InstallHistory.plist”的文件。这只是一个常规的属性列表。打开它并查找 MySQL 条目,然后删除它。


2

您是否考虑安装MacPorts 1.8.0(发布候选版)并通过该方式保持MySQL最新?这将为您使用的体系结构和操作系统构建MySQL,而不是在10.6上安装10.5版本。


谢谢,我不介意使用MacPorts 1.8.0,实际上我正在使用它,但我不知道它是什么版本。我做了一个搜索:port search mysql,但我可能错过了,因为所有的结果都是插件、控制器等。我怎样才能知道我有哪个版本?mysql安装的命令是什么?(即port install mysql-5) - nacho4d
你可能想要使用任何一个“mysql5”端口:mysql5或mysql5-server。还有mysql5-devel和mysql5-server-devel端口。 - Jeremy L
我按照你的建议进行了卸载和安装,但我仍然无法启动它。 这是我的操作记录:sudo /opt/local/lib/mysql5/bin/mysql_install_db --user=mysql (安装成功)/opt/local/lib/mysql5/bin/mysql_secure_installation 输入 root 的当前密码(没有则直接回车): ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (2) - nacho4d
/opt/local/lib/mysql5/bin/mysqladmin -u root password nachito14 /opt/local/lib/mysql5/bin/mysqladmin:连接到本地主机上的服务器失败 错误:'无法通过套接字'/opt/local/var/run/mysql5/mysqld.sock'(2)连接到本地MySQL服务器' 请检查mysqld是否正在运行并且套接字:'/opt/local/var/run/mysql5/mysqld.sock'是否存在! - nacho4d
看起来你似乎还没有运行它。它会默认创建一个启动项,请尝试启动它(或重新启动)。同时,加入MacPorts IRC以寻求帮助:irc.freenode.net #macports - Jeremy L

sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist

请使用sudo命令加载org.macports.mysql5.plist文件,该文件位于/Library/LaunchDaemons目录下。
- Jeremy L

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接