如何获取Mac环境下MySQL服务器可供其他设备连接使用的IP地址
解决步骤
1. 获取Mac本机正确的局域网IP
你之前在MySQL中查询返回localhost是因为本地连接默认走Unix套接字而非TCP协议,无法得到对外的IP地址,需要从系统层面查询:
- 图形化方式:按住
Option键点击屏幕右上角的WiFi图标,点击当前连接的WiFi即可直接看到IP地址,通常为192.168.x.x或10.x.x.x格式的局域网地址 - 命令行方式:打开终端执行以下命令,输出中
inet后跟随的就是当前网络IPifconfig | grep "inet " | grep -v 127.0.0.1
2. 调整MySQL远程访问配置
你填写本机IP无法连接是因为MySQL默认仅允许本地地址访问,需要修改配置:
2.1 修改绑定地址
- 查找MySQL配置文件:终端执行
sudo find / -name my.cnf 2>/dev/null,默认路径为/etc/my.cnf或/usr/local/mysql/etc/my.cnf - 打开配置文件,将
bind-address参数从默认的127.0.0.1修改为0.0.0.0(允许所有IP访问,如需限制特定网段可替换为对应网段地址) - 重启MySQL服务:可在系统设置的MySQL面板点击重启,或终端执行
sudo /usr/local/mysql/support-files/mysql.server restart
2.2 开放用户远程访问权限
默认数据库账号仅允许localhost登录,本地登录MySQL后执行以下SQL,替换对应参数即可:
-- 替换语句中的用户名、密码、数据库名,%表示允许所有IP访问,如需限制特定IP可替换为对应IP GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'%' IDENTIFIED BY '你的数据库密码'; FLUSH PRIVILEGES;
3. 放行防火墙端口
如果Mac开启了防火墙,需要放行MySQL默认的3306端口:
打开「系统设置→网络→防火墙→防火墙选项」,点击+号添加MySQL应用,或直接开放3306端口的入站规则。
4. 验证连接
其他设备先执行ping 你Mac的IP确认网络连通,再执行telnet 你Mac的IP 3306验证端口连通,连通后将Java项目的数据库连接地址修改为jdbc:mysql://你Mac的IP:3306/你的数据库名即可正常访问。
内容的提问来源于stack exchange,提问作者Wesley Stewart
相关产品推荐
相关产品推荐

