论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
安全
›
主机安全
›
MySQL 设置答应长途毗连完备指南:安全与效率并重 ...
MySQL 设置答应长途毗连完备指南:安全与效率并重
羊蹓狼
论坛元老
|
2025-3-24 12:46:24
|
显示全部楼层
|
阅读模式
楼主
主题
1606
|
帖子
1606
|
积分
4818
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
一、为什么需要长途毗连MySQL?
在分布式系统架构中,应用步伐与数据库每每摆设在不同服务器。例如:
Web服务器(如Nginx+PHP)需要毗连独立的MySQL数据库
数据分析师通过BI工具直连生产库
多服务器集群间的数据同步
但
直接开放长途毗连存在安全风险
,需遵照最小权限原则。本指南将分步讲解安全开启长途访问的方法。
二、基础配置步骤(以MySQL 8.0为例)
2.1 修改MySQL绑定地址
默认情况下MySQL仅监听127.0.0.1,需改为0.0.0.0或服务器公网IP。
打开配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf # Ubuntu/Debian
# 或
sudo nano /etc/my.cnf # CentOS/RHEL
复制代码
找到 bind-address 并修改:
[mysqld]
bind-address = 0.0.0.0 # 允许所有IP访问(生产环境慎用)
# 或指定特定IP
# bind-address = 192.168.1.100
复制代码
重启MySQL服务:
sudo systemctl restart mysql # systemd系统
# 或
sudo service mysql restart # init.d系统
复制代码
2.2 创建长途访问用户
切勿直接利用root账户长途毗连!
登录MySQL控制台:
mysql -u root -p
复制代码
创建专用长途用户:
-- MySQL 8.0+ 需指定加密插件
CREATE USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'StrongPassw0rd!';
-- 授权所有数据库(按需缩小权限)
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
复制代码
关键参数说明
:
'remote_user'@'%':答应从任何IP毗连(建议改为具体IP段如'192.168.1.%')
mysql_native_password:兼容旧客户端的加密方式(8.0默认利用caching_sha2_password)
2.3 配置防火墙
开放MySQL默认端口3306:
# Ubuntu UFW
sudo ufw allow 3306/tcp
# CentOS Firewalld
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
复制代码
三、高级安全加固方案
3.1 限定访问IP
通过MySQL用户权限限定来源IP:
-- 仅允许192.168.1.0/24网段访问
CREATE USER 'secure_user'@'192.168.1.%' IDENTIFIED BY 'Password123!';
复制代码
3.2 利用SSH隧道
更安全的毗连方式(无需开放3306端口):
ssh -L 3306:localhost:3306 user@mysql-server.com
复制代码
客户端毗连当地127.0.0.1:3306即可穿透到长途MySQL。
3.3 启用SSL加密
查抄MySQL SSL支持:
SHOW VARIABLES LIKE '%ssl%';
复制代码
逼迫用户利用SSL毗连:
ALTER USER 'remote_user'@'%' REQUIRE SSL;
复制代码
客户端毗连时添加参数:
mysql -u remote_user -p -h mysql-host --ssl-mode=REQUIRED
复制代码
3.4 审计与监控
启用查询日志:
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/query.log
复制代码
利用审计插件(企业版)或第三方工具如Percona Audit Plugin。
四、毗连测试与故障排查
4.1 测试长途毗连
mysql -u remote_user -p -h mysql-server-ip --port=3306
复制代码
4.2 常见错误办理方案
错误提示原因办理方案ERROR 1130 (HY000)用户权限不敷查抄GRANT语句和用户主机限定ERROR 2003 (HY000)端口不通/防火墙拦截利用telnet mysql-host 3306测试ERROR 1045 (28000)暗码错误重置暗码:ALTER USER ...Public Key Retrieval is not allowed加密插件辩论添加毗连参数:--ssl-mode=DISABLED
4.3 诊断工具
查抄端口监听状态:
sudo netstat -tuln | grep 3306
复制代码
检察实时毗连:
SHOW PROCESSLIST;
复制代码
五、生产情况最佳实践
最小权限原则
:按需授予SELECT/INSERT/UPDATE权限
定期轮换暗码
:每90天更新数据库暗码
VPN访问
:数据库仅答应内网或VPN网络访问
数据库防火墙
:利用云服务商的安全组(如AWS Security Group)
监控诉警
:配置异常登录检测(如多次失败尝试)
六、总结
通过公道配置bind-address、精致化用户权限和多重安全防护,可实现MySQL长途毗连的
安全与便捷均衡
。关键步骤回首:
修改my.cnf答应长途毗连
创建专用长途用户并限定IP
配置防火墙开放端口
启用SSL加密和审计日志
切记
:若无必要,勿开放公网访问!建议通过跳板机或VPN访问数据库,最大化保障数据安全。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
羊蹓狼
论坛元老
这个人很懒什么都没写!
楼主热帖
一文带你走进【内存泄漏】
让你成为网络世界中有破坏力的人-HTTP ...
保举开源项目:LuCI App AdGuardHome - ...
dolphinscheduler单机化改造
day01-Tomcat框架分析
3. 视图-触发器-存储过程-索引 ...
基于 Sealos 的镜像构建能力,快速部署 ...
使用jsch进行sftp传输时遇到的问题com. ...
邮件管理数据库设计--MySQL
深入理解并发编程同步工具类 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
Postrge-SQL技术社区
物联网
Mysql
公有云
虚拟化与私有云
Oracle
容器及微服务
快速回复
返回顶部
返回列表