使用Macports安装MySQL 5.6

8
MacOS 10.10,更新的macports。我想在端口3306上获取mysql 5.6。
1)安装
port install mysql56-server mysql56

安装了mysql56@5.6.22_0,之后
which mysql

或者
which mysql56

不返回任何内容。
第一个问题是MySQL客户端在哪里?
2)配置
安装脚本建议执行以下操作:
sudo -u _mysql /opt/local/lib/mysql56/bin/mysql_install_db

那么

/opt/local/lib/mysql56/bin/mysqladmin -u root password 'new-password'

它要求运行服务器,我通过以下方式启动它
cd /opt/local ; /opt/local/lib/mysql56/bin/mysqld_safe &

然后,mysqladmin 抱怨套接字问题,我在 /opt/local/etc/mysql56/macports-default.cnf 中注释掉了 --skip-networking,之后命令执行成功。
/opt/local/lib/mysql56/bin/mysqladmin -u root -h bp.local password 'new-password'

这句话的意思是“返回”。
error: 'Host '10.0.1.9' is not allowed to connect to this MySQL server'

我真的不知道没有mysql客户端该怎么办。我有些困住了。您有什么建议吗?
1个回答

16

MacPorts会以不会相互冲突并且可以同时安装的方式来安装MySQL及其派生版本。这包括将mysql二进制文件放置在非标准路径中。您可以使用port contents mysql56 | grep -E '/s?bin/'来查找您的二进制文件。MacPorts还配有选择机制,以方便您在/opt/local/bin中创建符号链接。要使MySQL 5.6成为默认设置,请运行sudo port select --set mysql mysql56

要启动服务器,您可以使用MacPorts的守护程序控制功能(它们是launchd的前端):sudo port load mysql56-server将启动服务器并确保在重新启动后仍在运行,而sudo port unload mysql56-server则会撤销该操作并停止服务器。

--skip-networking是默认设置,以使同时运行多个MySQL版本成为可能。有关更多信息,请参见port notes mysql56

您可以使用unix套接字连接到MacPorts的MySQL,尽管我不记得其路径了。不过,我确定http://trac.macports.org/wiki/howto/MAMP有这些信息。要连接到本地服务器,请使用localhost127.0.0.1,而不是bp.local,后者显然会解析为私有IP地址,因此会通过您的操作系统的IP堆栈,而不是通过回环接口。


我尝试使用port select,但只有一个连字符 :(。据我所知,您必须安装mysql_select才能使用它。@neverpanic如果您可以添加启动mysql而不添加到引导程序以及重新启动的命令,那么您的答案将是完美的。 - coviex
mysql56 依赖于 mysql_select,因此只要安装了 mysql56,就会自动安装 mysql_select(除非你强制 MacPorts 忽略该依赖项)。不幸的是,据我所知,launchd 总是在重启后保持守护程序状态,因此无法使用 launchd plists 进行“下次重启前启动”的操作。不过,我想你的启动命令对这种情况应该也有效。只需确保使用与 plist 相同的环境和用户即可。 - neverpanic
您可以通过运行/opt/local/lib/mysql56/bin/mysqladmin -u root -p variables命令并查找socket行来查找套接字路径。对于我来说,它是:/opt/local/var/run/mysql56/mysqld.sock - ilpssun

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