我安装了(因为我需要它们)mysql(因此8.0)和mysql@5.7通过自制软件在MBP苹果M2 w/ Ventura 13.3.1
我正确地设置了(第一次)mysql安装;
现在我切换到mysql@5.7:首先,我注意到它没有安装一个适当的数据库(或者它使用的是相同的其他公式...?!!)并遇到了臭名昭著的ERROR 2002(HY 000):通过brew services restart mysql@5.7
设置服务后,无法通过socket '/tmp/mysql.sock'(2)连接到本地MySQL服务器
问题:启动文件名称不同,但某些参数设置相同(datadir和WorkingDirectory);我可以安全地改变这些然后...?(我还注意到,每次我通过brew services stop xxx
停止每个服务时,相应的文件随后都被删除了!所以它一定来自某处)
基本上,我希望在5.7版本中使用**/opt/homebrew/var/mysql@5.7**;那我该怎么办?(特别是我也需要为5. 7建立一个新的数据库...)
由于我对这个领域很陌生,我开始在这里浏览各种主题。https://superuser.com/questions/1333504/brew-install-mysql5-7-cant-connect-to-local-mysql-server-through-socketbrew start and brew restart wont start service和其他一些,它不可避免地以recommandation结束,以完全清除所有与mysql相关的东西,并重新安装只有一个版本(这不是我想要的)。
对于mysql
:
me@localhost ~ % more ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
<?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>homebrew.mxcl.mysql</string>
<key>LimitLoadToSessionType</key>
<array>
<string>Aqua</string>
<string>Background</string>
<string>LoginWindow</string>
<string>StandardIO</string>
<string>System</string>
</array>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/opt/mysql/bin/mysqld_safe</string>
<string>--datadir=/opt/homebrew/var/mysql</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/opt/homebrew/var/mysql</string>
</dict>
</plist>
对于mysql@5.7
:
me@localhost ~ % more ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
/Users/me/Library/LaunchAgents/homebrew.mxcl.mysql.plist: No such file or directory
me@localhost ~ % more ~/Library/LaunchAgents/homebrew.mxcl.mysql@5.7.plist
<?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>homebrew.mxcl.mysql@5.7</string>
<key>LimitLoadToSessionType</key>
<array>
<string>Aqua</string>
<string>Background</string>
<string>LoginWindow</string>
<string>StandardIO</string>
<string>System</string>
</array>
<key>ProgramArguments</key>
<array>
<string>/opt/homebrew/opt/mysql@5.7/bin/mysqld_safe</string>
<string>--datadir=/opt/homebrew/var/mysql</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/opt/homebrew/var/mysql</string>
</dict>
</plist>
PS:当我修改上述文件时,启动服务失败(顺便说一句,文件被覆盖...):
me@localhost ~ % brew services start mysql@5.7
Bootstrap failed: 5: Input/output error
Try re-running the command as root for richer errors.
Error: Failure while executing; `/bin/launchctl bootstrap gui/503 /Users/me/Library/LaunchAgents/homebrew.mxcl.mysql@5.7.plist` exited with 5.
1条答案
按热度按时间w7t8yxp51#
如果在同一操作系统上运行多个MySQL示例,则每个示例必须具有不同的配置:
当MySQL服务器运行时,在plist中设置datadir。您可以使用选项设置其他选项,或者在每个示例的相应
my.cnf
文件中设置其他选项。还有几个其他的选项可以在同一台计算机上运行多个MySQL服务器示例。
一个是run MySQL Server instances in Docker containers,确保为每个指定不同的配置。当我在同一台计算机上需要多个版本的MySQL时,我使用Docker。
另一种方法是使用dbdeployer,这是一个免费的工具,可以在不使用Docker的情况下运行ad hoc服务器示例。这通常用于开发或测试,但如果您需要设置副本或类似的事情,它非常有用。
请记住,一旦您在计算机上有多个示例(无论它们是否在Docker中运行),您应该指定运行客户端时要连接的端口或套接字。