在 macOS 上安装 MySQL 的方法

412

我正在尝试使用Homebrew通过brew install mysql 5.1.52在Mac OS 10.6上设置MySQL。

一切进行的都很顺利,我也成功运行了mysql_install_db
但是当我尝试使用以下命令连接服务器时:

/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin -u root password 'mypass'
我收到以下错误信息:
/usr/local/Cellar/mysql/5.1.52/bin/mysqladmin: connect to server at 'localhost' 
failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'
我已尝试使用-u root -proot访问mysqladminmysql,但无论是否输入密码都无法正常工作。
这是在全新的机器上进行的全新安装,据我所知新安装必须在没有根密码的情况下可访问。我还尝试了:
/usr/local/Cellar/mysql/5.1.52/bin/mysql_secure_installation

但同时也出现了以下错误:

ERROR 1045(28000):访问被拒绝,因为使用者“root@localhost”(未提供密码)

参见:http://apple.stackexchange.com/a/199747/152271 ... 它不是brew install,但当这里的所有答案都无法解决问题时,它对我有用。 - sudo rm -rf slash
1
就我个人而言,我使用了 mysql -u root 并且在这里工作了 :| - rogerdpack
17个回答

2

补充之前的回答 - 当从 MySql 5.6 升级到 MySql 8.0 时,我按照这里提供的步骤进行了干净卸载,但是我遇到了以下错误

2019-11-05T07:57:31.359304Z 0 [ERROR] [MY-000077] [Server] /usr/local/Cellar/mysql/8.0.18/bin/mysqld: Error while setting value 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' to 'sql_mode'.
2019-11-05T07:57:31.359330Z 0 [ERROR] [MY-013236] [Server] The designated data directory /usr/local/var/mysql is unusable. You can remove all files that the server added to it.
2019-11-05T07:57:31.359413Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-11-05T07:57:31.359514Z 0 [Note] [MY-010120] [Server] Binlog end

花了我一些时间才弄清楚。在这里找到了线索: https://discourse.brew.sh/t/clean-removal-of-mysql/2251 所以,解决我的问题的关键是在卸载后删除 /usr/local/etc/my.cnf 文件。 经过这最后一步之后,MySql 终于开始工作了。

1

尝试通过授予mysql的Grant权限命令


问题是,我在使用Brew安装后无法访问MySQL服务器。 我可以启动它,但无论是否使用密码,它都不允许我以根用户身份登录(因此我无法创建其他用户或管理权限.. 或者我没有理解您的意思?)。 - nikola

1
我尝试重启mysql后,遇到了同样的问题。
我在我的.profile文件中使用以下两个别名以方便使用。
alias mysql-stop='launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'
alias mysql-start='launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist' 

停止MySQL后,尝试重新启动时,我遇到了您所遇到的问题。我调查了launchctl load,并报告了“未找到要加载的内容”错误。
经过快速搜索,我找到了以下解决方法...

http://www.daveoncode.com/2013/02/01/solve-mac-osx-launchctl-nothing-found-to-load-error/

所以我更新了我的mysql-start别名,如下:
alias mysql-start='launchctl load -w -F ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist'

这解决了我的问题,也许对你有用。

2
现在Brew支持services命令,因此可以分别使用brew services stop mysqlbrew services start mysql来替换它们。 - devstuff

1

当我在使用brew和最新版本的mysql以及yosemite操作系统时,以上所有答案(或其他地方看到的答案)都没有对我起作用。最终,我通过brew安装了另一个不同版本的mysql。

通过指定旧版本(例如)来解决问题。

brew install mysql56

对我很有帮助,希望能帮到其他人。这是一个让人沮丧的问题,让我感觉永远被卡住了。


是的,这个方法可以用,但是如果你想安装MySQL 5.7(与brew install mysql当前所做的相同),你可以按照我回答中的说明进行操作:https://dev59.com/_2855IYBdhLWcg3waDeR#33924648。 - mrucci

0

尝试我为MariaDB提供的解决方案,很有可能也适用于MySQL:

MacOSX homebrew mysql root password

简而言之,请尝试使用您的用户名登录!而不是root。

尝试与您的MacOS帐户用户名相同的名称,例如johnsmit。

要以root身份登录,请输入:

mysql -u johnsmit

0
删除/opt/homebrew/var/mysql解决了问题。显然,有MySQL数据(包括密码),因此上述所有操作都没有用。

这是绝对路径还是相对路径?绝对路径需要有前导斜杠。 - Justinas Lelys

0

MySQL的“Base-Path”存储在/etc/my.cnf中,当您执行brew upgrade时不会更新它。只需打开它并更改basedir值即可。

例如,将其更改为:

[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.13

指向新版本:

[mysqld]
basedir=/Users/3st/homebrew/Cellar/mysql/5.6.19

使用以下命令重新启动mysql:

mysql.server start

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