背景

macOS 10.12.4 操作系统

Homebrew 软件包管理器

MySQL 5.7.17

问题

使用Brew安装Mysql, 启动,本地可以正常登陆,无法远程登陆。

账户是的Host已经设置为‘%’

最后发现问题,3306端口再能在ip 127.0.0.1 上启动

运行命令

netstat -an | grep 3306

结果为:

tcp4 0 0 127.0.0.1.3306 *.* LISTEN

说明 3306端口 只能在 127.0.0.1 IP上进行监听

登陆mysql后 运行SQL

show variables like '%address%'

结果为

+---------------+-----------+

| Variable_name | Value |

+---------------+-----------+

| bind_address | 127.0.0.1 |

+---------------+-----------+

说明是mysql中绑定了IP地址

解决历程

上网查询各种资料, 都是让修改mysql的配置文件 my.cnf, 把 bind-address="127.0.0.1" 这一项注释掉

如果不知道my.cnf的位置在哪,可以运行命令

mysql --help | grep my.cnf

但是,打开my.cnf后并未发现 bind-address 这一项,自己手动加上 bind-address="0.0.0.0" ,重启mysql,仍然能远程登录。

难道my.cnf 中的配置不起作用?

最终解决

并不是my.cnf中的配置不起作用,是因为我们的mysql使用brew安装的, 还存在一个brew独有的优先级更高的xml格式的配置

打开文件 /usr/local/Cellar/mysql/5.7.17/homebrew.mxcl.mysql.plist

KeepAlive

Label

homebrew.mxcl.mysql

ProgramArguments

/usr/local/opt/mysql/bin/mysqld_safe

--bind-address=127.0.0.1

--datadir=/usr/local/var/mysql

RunAtLoad

WorkingDirectory

/usr/local/var/mysql

~

其中有一行 --bind-address=127.0.0.1,把这一行删掉,或者把 127.0.0.1 换成 0.0.0.0

重启mysql, 可以远程登录, 大功告成

(完)

GitHub 加速计划 / br / brew
40.4 K
9.47 K
下载
🍺 The missing package manager for macOS (or Linux)
最近提交(Master分支:1 个月前 )
90a90b30 1 个月前
47b1cab7 1 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐