在服务器之外的地方访问 MYSQL
在服务器之外的地方访问 MYSQL
1.修改服务器防火墙规则
iptables -L 可以查看当前的防火墙规则 iptables -F 可以清空所有防火墙规则
也可以通过云服务器的 UI 界面修改
2.确保 mysql 的监听地址是 0.0.0.0
监听地址是 0.0.0.0 ,表示该 mysql 允许所有 IP 地址进行连接,这是允许远程连接的基础
监听地址是 127.0.0.1,则代表该 mysql 只允许所在服务器本机连接,外网是无法连接的
怎么知道 mysql 的监听地址是多少呢?
Linux 服务器中执行如下命令可以查看:
netstat -nutlp|grep mysql
如果监听的地址不是 0.0.0.0,该怎么办?
因为 mysql 默认是监听 0.0.0.0 的,如果查看监听的不是,则肯定是配置文件中的 bind-address 参数的问题,
需要修改 mysql 的配置文件中的 bind-address 参数,将bind-address=127.0.0.1 修改成 bind-address=0.0.0.0
保存好后,重启 mysql 服务就会生效了。
重启MYSQL
步骤或方法: RedHat Linux (Fedora Core/Cent OS)
1.启动:/etc/init.d/mysqld start
2.停止:/etc/init.d/mysqld stop
3.重启:/etc/init.d/mysqld restart
Debian / Ubuntu Linux
1.启动:/etc/init.d/mysql start
2.停止:/etc/init.d/mysql stop
3.重启:/etc/init.d/mysql restart
3.添加远程连接 mysql 的账号
此步骤是必须要操作的,mysql 本身的用户只能在本机上连接数据库,外网连接的话,需要先添加远程用户并授权。
在 mysql 命令行模式下,或者 phpmyadmin 中执行 sql 语句添加远程连接用户
grant all on *.* to root@'%' identified by '123456';
flush privileges;
命令解释:
*.*
第一个 * 表示库,第二个 * 表示表; *.* 对全部数据库的全部表授权, so.ok 表示只对so这个库中的 ok 表授权root
表示要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的%
表示允许远程连接的 IP 地址,%代表允许所有 IP 连接,只允许某个IP远程连接,可以写成123.123.123.123
,只允许123.123.123.*这个网段远程连接,可以写成123.123.123.%
123456
:是设置授权用户的连接密码- flush privileges:代表立即刷新权限表,使添加的用户生效
上面三步都设置好了,就可以再次尝试远程连接mysql了。
__EOF__

本文链接:https://www.cnblogs.com/zolmk/p/14073976.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义