关键词:
【中文标题】如何使用 Homebrew 在 macOS BigSur (Apple Silicon) 上安装和启动 MySQL 5.7?【英文标题】:How to install and start MySQL 5.7 on macOS BigSur (Apple Silicon) with Homebrew? 【发布时间】:2021-06-11 13:47:48 【问题描述】:我需要使用 M1 在我的 MacBook 上安装特定版本的 MySQL (5.7)。
我正在尝试使用 Homebrew 来做到这一点。
brew install mysql@5.7
输出:
We've installed your MySQL database without a root password. To secure it run:
mysql_secure_installation
MySQL is configured to only allow connections from localhost by default
To connect run:
mysql -uroot
mysql@5.7 is keg-only, which means it was not symlinked into /opt/homebrew, because this is an alternate version of another formula.
If you need to have mysql@5.7 first in your PATH, run: echo 'export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc
For compilers to find mysql@5.7 you may need to set: export LDFLAGS="-L/opt/homebrew/opt/mysql@5.7/lib" export CPPFLAGS="-I/opt/homebrew/opt/mysql@5.7/include"
To have launchd start mysql@5.7 now and restart at login: brew services start mysql@5.7 Or, if you don't want/need a background service you can just run: /opt/homebrew/opt/mysql@5.7/bin/mysql.server start
然后,我尝试运行:
echo 'export PATH="/opt/homebrew/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc
source .zshrc
mysql_secure_installation
并得到错误:
Securing the MySQL server deployment.
Enter password for user root:
Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
另外,我尝试过:
brew services start mysql@5.7
也得到错误:
Error: Permission denied @ rb_sysopen - /Users/vivanc/Library/LaunchAgents/homebrew.mxcl.mysql@5.7.plist
似乎存在与权限相关的问题。 任何建议表示赞赏。
【问题讨论】:
我遇到了同样的问题,尝试清理所有内容并重新安装 MySQL,但仍然没有成功 【参考方案1】:虽然这个问题是针对 Apple Silicon 和 mysql 5.7 的,我将在这个答案中解决这个问题,但我想首先添加一些一般说明以节省其他人的时间:
Homebrew 支持英特尔和苹果芯片的 mysql 5.7。 https://formulae.brew.sh/formula/mysql@5.7
Homebrew 支持英特尔芯片的 mysql 5.6,但不支持苹果芯片: https://formulae.brew.sh/formula/mysql@5.6
如果您需要 Apple 芯片上的 5.6,那么只解决 5.7 可能是一个好主意,因为最终需要升级生产并且差异不会那么大。
在我的情况下,我最初是 brew install mysql
,它给了我最新的 mysql(目前是 8.0)。当我尝试返回并执行brew install mysql@5.6
时,由于 m1 max(苹果硅)不支持,这当然行不通。我遇到了问题,然后试图让brew install mysql@5.7
工作。我遵循了一些指南,提到了各种建议。玩了一段时间后,似乎同时运行两个版本的 mysql 会损坏你的 mysql 文件并使其难以使用并混淆自制软件。
我遇到了这些指南:brew install mysql on macOShttps://coderwall.com/p/os6woq/uninstall-all-those-broken-versions-of-mysql-and-re-install-it-with-brew-on-mac-maverickshttps://www.codegrepper.com/code-examples/shell/brew+uninstall+mysql
在进一步阅读之前,请注意,在我的情况下,我有一个 zip 可用于我的整个本地 mysql 数据库需求,并且可能会破坏我所拥有的。
警告!进一步阅读并不小心执行这些命令可能会删除您的 mysql 存储。确保您有备份。
brew remove mysql
是一个很好的命令,它摆脱了我最新的安装。
我还需要brew remove mysql@5.7
,尽管这是我正在尝试安装的版本,但他们互相踩了脚……
brew cleanup
不错,我注意到它释放了一些锁定文件。
我不记得有任何运气:
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
不过你可以试试。
rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
为我工作。
但请注意,您的 5.7 设置中还会有另一个文件。
我建议:
cd ~/Library/LaunchAgents/
然后环顾四周,看看你那里是否有任何 mysql*。然后如果你这样做了,比如homebrew.mxcl.mysql@5.7.plist
,那就删除它。
这些对我有用:
sudo rm -rf /usr/local/var/mysql
rm /usr/local/etc/my.cnf
rm /usr/local/etc/my.cnf.default
还有:
cd opt/homebrew/var
然后,如果您注意到那里有一个 mysql 目录,请将其删除。
你可能有 docker 或其他类似的东西也在运行 mysql 或 mysqld。ps -ax | grep "[m]ysql"
(注意上面的括号和引号是为了防止 grep 出现在进程列表中并与懒惰的版本相匹配:ps -ax | grep mysql
这会让人觉得有一个额外的 mysql 进程正在运行)
准备就绪后,请运行:
brew services list
仔细检查你那里没有mysql。
然后仔细检查您没有运行任何 mysql 进程:ps -ax | grep "[m]ysql"
例如,如果您输入mysqld
,就会发生这种情况......
如果您在服务列表或进程列表上看到任何内容,您可能需要执行 brew services stop mysql
或 brew services stop mysql@5.7
或类似操作并重复步骤。
最后,您应该准备好进行全新安装了。 全新的安装过程应该相当简单:
brew install mysql@5.7
brew link --force mysql@5.7
brew services start mysql@5.7
然后运行brew services list
以确保您的安装工作正常。
如果您看到它是绿色的并且“已启动”,则您的安装成功了!
您还应该运行:
mysql_secure_installation
然后为 root 选择一个密码,并浏览验证等问题列表。
安装后,您可能还会遇到 mysql 模式问题。
cd /opt/homebrew/etc
你应该找到一个 my.cnf 文件。
使用 vim 或 nano 编辑它。
您应该会看到如下内容:
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
编辑它并设置mysql模式。例如,我不想要 no_zero_in_date 模式,所以我使用:
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
sql-mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
然后像这样重启mysql:brew services restart mysql@5.7
然后仔细检查您是否仍然处于“已启动”绿色状态:brew services list
如果你这样做了,那么你应该禁用 no_zero_in_date 模式。
您可以通过查询进行测试:SELECT @@sql_mode;
您现在应该在 Apple Silicon 上运行 mysql 5.7 并设置了 sql_mode。
如果您遇到更多故障排除,请尽量进入已知状态,例如已卸载、重新安装或已安装某个版本等。
【讨论】:
【参考方案2】:如果您遇到诸如“Can't connect to local MySQL server through socket '/tmp/mysql.sock'
”或“The post-install step did not complete successfully MySQL
”之类的问题,并且您之前安装了以前版本的 mysql(例如 8.x),那么您可能已经到了需要清理的地方重新安装首选版本的 mysql@xx 之前的所有内容
如果您已经访问过这些链接:
Uninstall all those broken versions of MySQL and re-install it with Brew on Mac Mavericks (Coderwall) + Install MySQL 5.7 on macOS using Homebrew (github) 并且您在启动 mysql 服务时仍然遇到问题,您应该尝试同时删除 /opt/homebrew/etc/my.cnf
文件。
也将其连同所有相关文件一起删除! M1 Apple Silcion机器总结,通过brew uninstall mysql
或brew uninstall mysql@x.x
卸载后,请删除:
/opt/homebrew/var/mysql
/opt/homebrew/etc/my.cnf
在此之后,一切都像全新安装一样(对我而言)。希望这可以节省一些人的时间。
【讨论】:
我有同样的问题,只是 MySQL 8 和 5.7 之间的冲突。我都卸载了,然后再次重新安装了 5.7 并且它工作了【参考方案3】:在设置我的 Apple M1 Macbook Pro 时,我遇到了以下错误消息的问题:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
我的解决方法是修改 MySQL 配置文件:
nano /usr/local/etc/my.cnf
添加以下行:
tmpdir=/tmp
user=root
然后运行:
brew services restart mysql@5.7
这解决了我的问题,然后我能够成功连接到我的数据库客户端。
【讨论】:
【参考方案4】:我收到了这个警告:
You should change the ownership of these directories to your user.
sudo chown -R $(whoami) /usr/local/share/doc /usr/local/share/man /usr/local/share/man/man1
And make sure that your user has write permission.
chmod u+w /usr/local/share/doc /usr/local/share/man /usr/local/share/man/man1
我运行这两个命令然后它工作。
【讨论】:
【参考方案5】:似乎我找到了解决方案(或解决方法)。
使用 Homebrew 安装 MySQL 5.7 后,只需运行:
mysql.server start
MySQL 已启动,然后您可以运行mysql_secure_installation
和mysql
命令。
【讨论】:
【参考方案6】:经过几个小时的搜索,我解决了这个问题,这是因为我没有清理我之前安装的 MySQL 8.X 的所有内容。我关注了this,当我意识到那里没有大部分文件夹时,我开始怀疑。然后我在我的计算机上搜索了所有名为mysql
的文件夹,并在opt/homebrew/var
中找到了一个mysql
文件夹。删除它后,重新安装 MySQL 5.7,并启动服务器,一切都按预期工作。
【讨论】:
那么,现在您可以使用brew services start mysql@5,7
启动/停止 MySQL 服务器,而不会出现任何权限错误?我在新的 macOS 上没有任何以前安装的 MySQL 出现这些错误。
是的,这是正确的,也许我们当时没有同样的问题
但是 /opt/homebrew/var/mysql 包含表数据!我不能删除它。如何在多用户 MacOS Sierra 设置中使用 Homebrew
】如何在多用户MacOSSierra设置中使用Homebrew【英文标题】:HowtouseHomebrewonaMulti-userMacOSSierraSetup【发布时间】:2017-06-0923:27:31【问题描述】:我有一台由两位工程师共享的Mac。两者都有单独的用户帐户。两者都需要偶尔运行brewupdate... 查看详情
如何使用 Homebrew 在 macOS BigSur (Apple Silicon) 上安装和启动 MySQL 5.7?
】如何使用Homebrew在macOSBigSur(AppleSilicon)上安装和启动MySQL5.7?【英文标题】:HowtoinstallandstartMySQL5.7onmacOSBigSur(AppleSilicon)withHomebrew?【发布时间】:2021-06-1113:47:48【问题描述】:我需要使用M1在我的MacBook上安装特定版本的MySQL(5.7)。... 查看详情
如何使用 CLion 在 MacOS Big Sur 上查看内存泄漏?
】如何使用CLion在MacOSBigSur上查看内存泄漏?【英文标题】:HowcanIseememoryleaksonMacOSBigSurusingCLion?【发布时间】:2021-06-1010:51:52【问题描述】:我不知道如何在使用CLion的MacOSBigSur上使用CLion来查看内存泄漏,我已经尝试过这些方法... 查看详情
通过 Homebrew 在 MacOS 上使用 asdf 安装 ruby
】通过Homebrew在MacOS上使用asdf安装ruby【英文标题】:InstallrubywithasdfonMacOSviaHomebrew【发布时间】:2022-01-0414:13:05【问题描述】:我最近想在MacOSBigSur11.5Beta上安装不同版本的ruby和Rails。我通过Homebrew安装了asdf。我想运行railsserve... 查看详情
markdown使用homebrew在macos上安装mysql5.7(代码片段)
macOS 上的 Homebrew:如何找到旧版本的 brew 公式?
】macOS上的Homebrew:如何找到旧版本的brew公式?【英文标题】:HomebrewonmacOS:howtofindolderversionsofabrewformula?【发布时间】:2020-10-2118:24:49【问题描述】:Homebrew使用了versions命令来显示特定公式的所有先前版本的列表。例如:brewversio... 查看详情
我目前在 Eclipse MacOS Big Sur 上进行 GDB 调试时遇到错误
...cOSBigSur【发布时间】:2021-04-2805:30:37【问题描述】:通过Homebrew在BigSur上安装GDB后,我目前遇到了一个奇怪的错误。我已经正确地为我的Eclipse配置了所有东西(我的GDB链接为调试器)。但 查看详情
如何在 macOS Big Sur 上安装 valgrind?
】如何在macOSBigSur上安装valgrind?【英文标题】:HowtoinstallvalgrindonmacOSBigSur?【发布时间】:2021-04-1313:28:22【问题描述】:我最近购买了M1MacBookPro,但在macOSBigSur上安装valgrind时遇到问题。到目前为止我尝试过的是:brewinstallvalgrind... 查看详情
在 MacOS Big Sur 上使用 perl WWW:Mechanize
】在MacOSBigSur上使用perlWWW:Mechanize【英文标题】:UseperlWWW:MechanizeonMacOSBigSur【发布时间】:2021-09-0702:59:22【问题描述】:我想在BigSur上使用WWW:Mechanize和perl。我的Perl:perl5,version34,subversion0(v5.34.0)就使用模块而言,我可以安装perl:D... 查看详情
macos如何使用软件包管理器homebrew-cask安装软件?
本文标签:Mac效率工具Mac小工具MacOSHomebrew-CaskMac软件包管理器软件包管理简介苹果系统结合了Windows的图形界面以及Linux的命令行,现在开发人员都清一色的用Mac了。Linux系统下安装、更新软件都很方便,除了我感觉用CentOS系统的... 查看详情
Xdebug 安装失败,因为使用 MAMP 在 macOS Big Sur 上“phpize”失败
】Xdebug安装失败,因为使用MAMP在macOSBigSur上“phpize”失败【英文标题】:Xdebuginstallationfailedbecause"phpize"failedonmacOSBigSurwithMAMP【发布时间】:2021-01-2015:18:45【问题描述】:我正在尝试在我的Mac上安装Xdebug,因为我正在使用MA... 查看详情
如何让 Mac OS 使用 Homebrew 安装的 python
】如何让MacOS使用Homebrew安装的python【英文标题】:HowtomakeMacOSusethepythoninstalledbyHomebrew【发布时间】:2013-08-2711:44:18【问题描述】:为了这个问题我在网上搜索了一段时间,目前我所做的是在自制软件中安装了python32更改了我的.ba... 查看详情
MacOs 使用 Homebrew 更改默认 php 版本
】MacOs使用Homebrew更改默认php版本【英文标题】:MacOschangedefaultphpversionwithHomebrew【发布时间】:2021-12-3106:26:09【问题描述】:我正在运行MacOSCatalina。我安装了php@8.0,现在我想将默认值从php@7.4更改为php@8.0。我用这个命令安装了php... 查看详情
在 macOS Big Sur 上安装可可豆荚时出错
...题描述】:我正在我的机器上设置颤振。但是,当我尝试使用安装cocoapods时sudogeminstallcocoapods我收到此错误:Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Erro 查看详情
SDL2 无法在 macos Big Sur 上编译
...】:2022-01-1403:44:06【问题描述】:在我的一个项目中,我使用git子模块来下载SDL2库并进行编译。这给了我一个奇怪的错误,所以我尝试编译SDL2Standalone并得到了同样的错误。我使用的是13英寸MacBookProBigSur重现步骤:gitclonehttps://gi... 查看详情
Homebrew 在 macOS High Sierra 中没有列出 Xcode CLT
】Homebrew在macOSHighSierra中没有列出XcodeCLT【英文标题】:NoXcodeCLTlistedbyHomebrewinmacOSHighSierra【发布时间】:2017-11-1214:02:46【问题描述】:自从更新到macOSHighSierra后,Homebrew报告CLT:N/A:macOS:10.13.1-x86_64Xcode:9.1CLT:N/A之前此条目报告了Xcod... 查看详情
MacOS homebrew mysql root密码
】MacOShomebrewmysqlroot密码【英文标题】:MacOSXhomebrewmysqlrootpassword【发布时间】:2012-03-3012:32:34【问题描述】:由于某种原因MySQL停止授予root访问权限。使用Homebrew卸载并重新安装。全新安装,全新表格,但当我进入时mysql-uroot-p我... 查看详情
brew:macos使用brew命令报错“erroropeningarchive:failedtoopen‘../caches/homebrew../”解决方法
正常情况下通过Homebrew官网提供的命令安装的用户是无感的,但是由于国内特殊网络环境的问题,我使用的是如上文所说的国内镜像,而国内的镜像是依然指向Bintray的,所以才会出现无法打开归档的错误.要解决这个问题有两个解决方... 查看详情