32

我有一个全新安装的 MySQL (mysql-5.5.24-osx10.6-x86_64)。我在使用 Mac Pro 四核的 Lion (OS 10.7.4)。我安装了 MySQL GUI 安装程序,还安装了 pref 窗格和启动项。

但是,当我运行时:

sudo ./bin/mysqld_safe

我收到这条消息:

120515 17:58:19 mysqld_safe Logging to '/usr/local/mysql-5.5.24-osx10.6-x86_64/data/Dannys-Mac-Pro.local.err'.
120515 17:58:19 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql-5.5.24-osx10.6-x86_64/data
120515 17:58:20 mysqld_safe mysqld from pid file /usr/local/mysql-5.5.24-osx10.6-x86_64/data/Dannys-Mac-Pro.local.pid ended

我也无法从首选项窗格启动 MySQL。

根据今天的谷歌搜索和研究时间,这是我迄今为止所尝试的:

权限问题?

这个:

cd /usr/local
sudo chown mysql mysql
sudo chown mysql mysql-5.5.24-osx10.6-x86_64
sudo chown _mysql mysql
sudo chown _mysql mysql-5.5.24-osx10.6-x86_64

sudo chown -R /usr/local/mysql-5.5.24-osx10.6-x86_64/
sudo chown -R /usr/local/mysql

这个:

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

链接问题?

这个:

在 /usr/local/mysql/support-files/mysql.server - 我做了:

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

在文件 /etc/rc.common 的末尾添加以下行:/usr/local/mysql/bin/mysqld_safe --user=mysql &

这个:

sudo ln -s /usr/local/mysql-5.5.24-osx10.6-x86_64 /usr/local/mysql

我也尝试了这里的删除过程并重新安装,但这似乎没有什么不同。我还在 OS X 中启动了 Activity Monitor,以查看是否有任何其他 mySQL 进程偶然运行,但实际上没有。

以上没有任何效果,所以我有点不知所措。这是来自 .err 文件的日志,位于:

/usr/local/mysql-5.5.24-osx10.6-x86_64/data/Dannys-Mac-Pro.local.err

120515 18:07:43 mysqld_safe mysqld from pid file /usr/local/mysql-5.5.24-osx10.6-x86_64/data/Dannys-Mac-Pro.local.pid ended
120515 18:13:01 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql-5.5.24-osx10.6-x86_64/data
120515 18:13:01 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql-5.5.24-osx10.6-x86_64/data/ is case insensitive
120515 18:13:01 [Note] Plugin 'FEDERATED' is disabled.
/usr/local/mysql-5.5.24-osx10.6-x86_64/bin/mysqld: Table 'mysql.plugin' doesn't exist
120515 18:13:01 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
120515 18:13:01 InnoDB: The InnoDB memory heap is disabled
120515 18:13:01 InnoDB: Mutexes and rw_locks use GCC atomic builtins
120515 18:13:01 InnoDB: Compressed tables use zlib 1.2.3
120515 18:13:01 InnoDB: Initializing buffer pool, size = 128.0M
120515 18:13:01 InnoDB: Completed initialization of buffer pool
120515 18:13:01 InnoDB: highest supported file format is Barracuda.
120515 18:13:01  InnoDB: Waiting for the background threads to start
120515 18:13:02 InnoDB: 1.1.8 started; log sequence number 1595675
120515 18:13:02 [ERROR] /usr/local/mysql-5.5.24-osx10.6-x86_64/bin/mysqld: unknown option '--skip-locking'
120515 18:13:02 [ERROR] Aborting

120515 18:13:02  InnoDB: Starting shutdown...
120515 18:13:03  InnoDB: Shutdown completed; log sequence number 1595675
120515 18:13:03 [Note] /usr/local/mysql-5.5.24-osx10.6-x86_64/bin/mysqld: Shutdown complete

120515 18:13:03 mysqld_safe mysqld from pid file /usr/local/mysql-5.5.24-osx10.6-x86_64/data/Dannys-Mac-Pro.local.pid ended

更新:我将同一台机器从 Snow Leopard 升级到 Mountain Lion 10.8.1 并且 MySQL 现在在升级后工作得非常好,我不需要做任何额外的事情。

4

10 回答 10

11

在为我的 MAC OS 10.7.5 安装 mysql 最新版本 mysql-5.6.10-osx10.7-x86.dmg 时,我遇到了同样的问题。以下是我的解决方案。一、删除安装的mysql

sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /var/db/receipts/com.mysql.*

然后,获取mysql-5.1.68-osx10.6-x86.dmg,安装这个旧版本,大功告成!

于 2013-03-18T08:16:35.447 回答
9

正如@AndPy 所说,与我一样,如果您可以看到该文件ls -l属于或某些此类...。在这种情况下,只需删除该文件并将创建您的用户拥有的新文件并正确启动时间 :)/usr/local/var/mysqlCOMPUTER-NAME.local.err_mysqlmysql.server start

如果该文件已由您的用户拥有,这将无济于事,您必须谷歌更多:(

于 2014-01-30T13:07:44.773 回答
6

更新到 OS X Mavericks 后我遇到了同样的问题。

启动 MySQL 。错误!服务器退出但不更新 PID 文件

就像RedrickAndPy提到的那样,我还必须重命名(实际上我删除了文件)位于$ cd /usr/local/var/mysql. 我的错误文件被称为localhost.err. 删除文件后,$ rm localhost.err我终于可以使用$ mysql.server start.

于 2014-10-13T15:37:34.490 回答
6

我在 redmine bitnami 堆栈上发现了这个错误,因为目录数据中的文件所有者不正确。

检查目录/mysql/data/的所有者必须是'mysql'用户

希望这有帮助。

于 2014-05-19T15:45:14.273 回答
4

我有同样的问题。

在 /usr/local/var/mysql 中,我找到了 COMPUTER-NAME.local.err 形式的文件。只需更改该文件名即可解决问题。我现在可以启动mysql服务器了

mysql.server 启动

于 2013-06-17T11:08:57.370 回答
3

我的回答与其他人非常相似,但略有不同,这主要适用于 bitnami mamp 堆栈。我的解决方法是:

sudo chown -R mysql mysql/

mysql/目录位于Applications/<mampstack-version>/

上面将mysql设置为mysql目录的所有者,递归到其他目录。

于 2015-06-24T18:01:24.607 回答
2

如果你想让这件事完全正常工作,请执行以下操作:

您需要先卸载 mysql,但在执行此操作之前,请确保您备份了所有数据库。

brew remove mysql

然后您需要确保某些文件已卸载,制作以下命令的批处理脚本并运行它:

sudo rm /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql*
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
rm -rf ~/Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*

转到/etc/hostconfig使用您喜欢的编辑程序并删除该行MYSQLCOM=-YES-

然后运行brew cleanup然后使用安装mysqlbrew install mysql

完成此操作后,您可能会再次遇到相同的错误。前往文件夹cd /usr/local/var/mysql/。里面应该有一个文件叫做localhost.local.err

运行cat ./localhost.local.err并查看文件。您应该会看到类似于以下内容的内容:

2018-03-24 15:41:49 140735679804288 [ERROR] Can't start server: Bind on TCP/IP port. Got error: 48: Address already in use

2018-03-24 15:41:49 140735679804288 [ERROR] Do you already have another mysqld server running on port: 3306 ?

如果你这样做了,运行命令sudo lsof -i :3306,你可能会得到这样的结果:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 74 _mysql 20u IPv6 0xXXXXXXXXXXXXX 0t0 TCP *:mysql (LISTEN)

这意味着 mysql 已经在 3306 端口上运行和监听,你需要杀死它。用于top杀死程序或仅使用活动监视器将其杀死。无论哪种方式,一旦完成,请返回cd /usr/local/var/mysql/并删除文件夹localhost.local.err

完成后运行 mysql.server start ,您应该得到以下信息:

180324 15:46:18 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql SUCCESS!

恭喜。我一直在尝试解决这个问题一个星期,这是一个很容易解决的问题,我只是想通了。我恨我自己。

于 2018-03-24T20:01:05.053 回答
0

120515 18:13:01 [错误] 无法打开 mysql.plugin 表。请运行 mysql_upgrade 来创建它。

  • 关于这个错误,我假设你在 my.cnf 中指定了一个 datadir。如果您使用 MySQL 的非默认数据目录,则需要将文件夹 mysql 和 performance_schema(以存在者为准)移动到 my.cnf 中指定的数据目录。您可以在 mysql 目录中找到这些文件夹。

在 MySQL 5.5+ 中删除了 --skip-locking 选项。请改用 --skip-external-locking。请参阅 MySQL 文档 --> http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html 引用:“--enable-locking 和 --skip-locking 服务器选项(使用 - -external-locking 和 --skip-external-locking)。”

于 2012-09-19T17:22:07.347 回答
0

试一试。。

  1. 导航到问题的父目录cd YOURPATH/usr/local/mysql
  2. rm -rf *.local.err(删除文件)
  3. touch YOURUSERNAME.local.pid(生成新的 *.local.pid 文件引发的错误抱怨)
  4. cd 回到你的项目并使用重启 mysqlmysql.server start
于 2015-04-25T03:45:08.590 回答
0

仅删除/usr/local/var/mysql/ 中的mysql-bin.index文件对我有帮助。

于 2016-04-25T07:56:21.213 回答