解决虚拟机上的mysql只能被本地访问这个问题
为了让任意IP都能访问到该mysql,我们可以从两个方面来考虑
1、查看mysql这个数据库(安装mysql时默认会创建的一个数据库)中user表里root账号所对应的host是不是为%
注:当host的值为%时,表示可被任意IP访问;当host的值为localhost时,表示只能被本地访问。
一般来说,若不做任何修改,新安装的mysql,root账号所对应的host为localhost;所以我们只需将localhost改为%即可。
# 登入mysql mysql -u root -p # 选择mysql数据库 use mysql; # 查看user表 select user, host from user; # 修改host update user set host='%' where user='root';
# 刷新
flush privileges;
至此,一般可解决任意IP访问该mysql数据库。
但事情往往又不是那么简单!
由于现在最新版的Ubuntu或centos都是默认安装mysql8.x;而实际开发过程用的更多的是5.7.
故此不能使用默认安装方式安装mysql,本人查看了网上资料,亲自试验了使用deb压缩包安装的方法。
具体安装方法:https://blog.csdn.net/m0_46470316/article/details/111127185
注:这种手动安装方式比默认安装麻烦多了,且容易出错;但目前还没有发现更简单的方法安装低版本的MySQL。
好不容易安装成功,但你会发现无法远程连接该数据库,只能本地访问,即使用上了第一种方法将host改为%都没用。
此问题根本原因没有去深究,我猜想也许和下载的.deb包中的默认配置有关有;具体解决步骤如下:
# 查看mysql安装目录 whereis mysql # 一般来说配置文件在/etc/mysql中 # 进入/etc/mysql cd /etc/mysql # 编辑my.cnf文件,插入如下两行代码(表示允许任意ip地址访问) [mysqld] bind-address=0.0.0.0 # 重启mysql sudo service mysql restart # 若后续出现如下问题请参考https://www.cnblogs.com/csyblog/p/10670802.html Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
至此,我遇到的问题终于解决;
若有后续,随缘补充。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix