当前位置: 首页 > article >正文

MySQL 远程访问实战:从基础操作到真实踩坑记录

MySQL 远程访问实战从基础操作到真实踩坑记录本文记录了一次完整的 MySQL 远程连接踩坑过程涵盖基础命令行操作、认证插件报错、IP 被拉黑等问题及解决方案。一、MySQL 基础命令行操作1.1 登录与退出# 本地登录默认走 localhostmysql-uroot-p# 指定 IP 登录走网络连接mysql-h192.168.1.100-uroot-p# 指定端口mysql-h192.168.1.100-P3306-uroot-p# 退出exit;-- 或 quit;1.2 用户管理-- 查看所有用户SELECTUser,Host,pluginFROMmysql.user;-- 创建本地用户CREATEUSERalicelocalhostIDENTIFIEDBY密码;-- 创建远程用户允许任意 IPCREATEUSERbob%IDENTIFIEDBY密码;-- 创建远程用户只允许特定 IPCREATEUSERcharlie192.168.1.50IDENTIFIEDBY密码;-- 修改密码ALTERUSERbob%IDENTIFIEDBY新密码;-- 删除用户DROPUSERbob%;-- 刷新权限修改后必须执行FLUSHPRIVILEGES;1.3 权限管理-- 授予所有权限GRANTALLPRIVILEGESON*.*TObob%;-- 授予特定数据库权限GRANTALLPRIVILEGESONmydb.*TObob%;-- 授予只读权限GRANTSELECTONmydb.*TOreadonly%;-- 撤销权限REVOKEALLPRIVILEGESON*.*FROMbob%;-- 查看用户权限SHOWGRANTSFORbob%;1.4 数据库与表操作-- 创建数据库CREATEDATABASEmydbCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;-- 查看所有数据库SHOWDATABASES;-- 切换数据库USEmydb;-- 创建表CREATETABLEusers(idINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(50)NOTNULL,emailVARCHAR(100)UNIQUE,created_atTIMESTAMPDEFAULTCURRENT_TIMESTAMP);-- 查看表结构DESCusers;-- 或SHOWCREATETABLEusers;-- 插入数据INSERTINTOusers(name,email)VALUES(张三,zhangsanexample.com);-- 查询SELECT*FROMusersWHEREnameLIKE%张%;-- 更新UPDATEusersSETemailnewexample.comWHEREid1;-- 删除DELETEFROMusersWHEREid1;1.5 服务管理Linux# 启动sudosystemctl start mysql# 停止sudosystemctl stop mysql# 重启sudosystemctl restart mysql# 查看状态sudosystemctl status mysql二、远程访问配置2.1 服务端配置编辑 MySQL 配置文件Linux:/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/my.cnfWindows:my.ini# 允许所有网卡监听默认 127.0.0.1 只监听本地 bind-address 0.0.0.0 # 或注释掉该行 # bind-address 127.0.0.1重启生效sudosystemctl restart mysql2.2 防火墙放行# UFW (Ubuntu/Debian)sudoufw allow3306/tcp# firewalld (CentOS/RHEL)sudofirewall-cmd--permanent--add-port3306/tcpsudofirewall-cmd--reload# 云服务器还需在安全组中放行 3306 端口2.3 用户授权-- 创建远程专用用户推荐CREATEUSERremote_user%IDENTIFIEDBY强密码;GRANTALLPRIVILEGESONmydb.*TOremote_user%;FLUSHPRIVILEGES;三、踩坑实录认证插件与 IP 拉黑3.1 环境背景服务端: MySQL 8.0Linux 服务器客户端: Windows C 程序使用较老的 MySQL C API 库连接方式:mysql_real_connect(conn, 10.136.11.246, root, ...)3.2 第一坑IP 被拉黑报错信息mysql_real_connect failed: Host 10.136.26.183 is blocked because of many connection errors; unblock with mysqladmin flush-hosts原因分析MySQL 有安全机制当某个 IP 连续多次连接失败默认阈值 100 次会自动将该 IP 加入黑名单防止暴力破解。解决方法# 服务端执行清空黑名单mysqladmin flush-hosts或登录 MySQL 后FLUSH HOSTS;3.3 第二坑认证插件不兼容报错信息mysql_real_connect failed: Authentication plugin caching_sha2_password cannot be loaded: 找不到指定的模块。原因分析MySQL 8.0 默认使用caching_sha2_password认证插件但客户端C 的 MySQL 库版本太老不支持这个插件。根本区别MySQL 版本默认认证插件兼容性5.7 及以前mysql_native_password老客户端都支持8.0caching_sha2_password需要新版客户端库3.4 第三坑ALTER USER 报错报错信息ERROR 1396 (HY000): Operation ALTER USER failed for root10.136.11.246原因分析MySQL 的用户是用户名 Host的组合。查询发现系统中只有SELECTUser,HostFROMmysql.user;结果----------------- | User | Host | ----------------- | root | % | | root | localhost | -----------------root10.136.11.246这个用户根本不存在MySQL 用户匹配规则Host 值含义localhost只允许本机 socket 连接127.0.0.1只允许本机 TCP 连接192.168.1.%允许该网段10.136.11.246只允许该特定 IP%允许任意 IP最宽松注意localhost≠10.136.11.246localhost走127.0.0.1不经过网卡10.136.11.246是服务器的实际网卡 IP走网络协议四、完整解决过程步骤 1确认现有用户SELECTUser,Host,pluginFROMmysql.userWHEREUserroot;确认有root%存在。步骤 2修改认证插件服务端执行-- 修改已存在的 root% 用户ALTERUSERroot%IDENTIFIEDWITHmysql_native_passwordBY你的密码;FLUSHPRIVILEGES;步骤 3验证修改结果SELECTUser,Host,pluginFROMmysql.userWHEREUserroot;确认root%的plugin变为mysql_native_password。步骤 4清空 IP 黑名单FLUSH HOSTS;步骤 5客户端连接测试C 代码#includemysql.hMYSQL*connmysql_init(nullptr);if(!mysql_real_connect(conn,10.136.11.246,// 服务器 IProot,// 用户名你的密码,// 密码数据库名,// 数据库3306,// 端口nullptr,0)){printf(连接失败: %s\n,mysql_error(conn));}else{printf(连接成功\n);}mysql_close(conn);五、其他解决方案对比方案 A改服务端认证方式本文采用优点客户端不用改快速解决缺点安全性略降新特性无法使用-- 改单个用户ALTERUSERuser%IDENTIFIEDWITHmysql_native_passwordBY密码;-- 或改全局默认my.cnf[mysqld]default_authentication_pluginmysql_native_password方案 B升级客户端库推荐长期方案优点支持最新特性更安全缺点需要重新编译项目下载MySQL Connector/C 8.0: https://dev.mysql.com/downloads/connector/cpp/或更新 C API 的libmysql.dll到 8.0 版本方案 C使用 SSH 隧道最安全# 本地建立隧道把远程 3306 映射到本地 3307ssh-L3307:localhost:3306 user服务器IP# 然后 C 连接本地 3307实际走的是加密 SSHmysql_real_connect(conn,127.0.0.1,root,...,3307,...);优点不暴露 3306 端口全程加密缺点需要额外配置 SSH六、安全建议不要用 root 远程访问创建专用账号最小权限原则限制 Host 范围能用192.168.1.%就不要用%强密码 SSL生产环境必须配置 SSL 连接修改默认端口将 3306 改为其他端口减少扫描fail2ban自动封禁暴力破解 IP七、常用排查命令速查-- 查看当前连接SHOWPROCESSLIST;-- 查看连接错误阈值SHOWVARIABLESLIKEmax_connect_errors;-- 修改阈值临时SETGLOBALmax_connect_errors1000;-- 查看用户认证方式SELECTUser,Host,plugin,authentication_stringFROMmysql.user;-- 查看被拉黑的 IPperformance_schema 需开启SELECT*FROMperformance_schema.host_cacheWHERESUM_CONNECT_ERRORS0;总结问题现象解决IP 被拉黑Host is blockedFLUSH HOSTS;认证插件不支持caching_sha2_password cannot be loaded改mysql_native_password或升级客户端用户不存在Operation ALTER USER failed先SELECT查用户确认 Host 正确localhost vs IP连接方式不同匹配的用户不同明确用%还是具体 IP核心教训MySQL 的用户是用户名Host的组合修改前务必先查清楚本文基于 MySQL 8.0 Windows C 客户端的真实踩坑经历整理。

相关文章:

MySQL 远程访问实战:从基础操作到真实踩坑记录

MySQL 远程访问实战:从基础操作到真实踩坑记录本文记录了一次完整的 MySQL 远程连接踩坑过程,涵盖基础命令行操作、认证插件报错、IP 被拉黑等问题及解决方案。一、MySQL 基础命令行操作 1.1 登录与退出 # 本地登录(默认走 localhost&#xf…...

LangGraph 并发控制:如何防止多 Agent 同时操作资源导致的数据竞争

一、 引言 (Introduction) 钩子 (The Hook): 从ChatGPT的“分身乏术”到企业级多Agent的“致命混乱” 你有没有试过让ChatGPT帮你同时整理3份季度财报,同步核对5个不同来源的竞品价格,还要实时生成一封给投资人的更新邮件——然后看着它一会儿漏记了第三…...

Multi-Agent系统测试方法:确保协同效率与决策准确性

Multi-Agent系统测试方法:确保协同效率与决策准确性一、 引言 (Introduction) (预计字数12000,含场景示例、背景问题、核心预告、全文导读) 1.1 钩子:从自动驾驶车队的深夜惊魂说起 你有没有刷到过去年(202…...

规格驱动开发:用AI编码助手实现工程化协作与边界控制

1. 项目概述:当AI编码助手学会“看图纸”施工 如果你和我一样,长期在项目一线和各类AI编码助手(Claude Code、Cursor、GitHub Copilot等)打交道,那你肯定经历过这种场景:你给AI一个模糊的需求,比…...

AED设备原理与ECG信号处理技术解析

1. 自动体外除颤器(AED)的核心原理与医疗价值AED设备本质上是一个高度集成的嵌入式系统,它通过"感知-分析-决策-执行"的闭环工作流程挽救心脏骤停患者的生命。当患者出现心室颤动(VF)或无脉性室性心动过速(VT)时,心脏电活动处于混沌状态&#…...

Python在TVA算法架构优化中的创新应用(二)

前沿技术背景介绍:AI 智能体视觉系统(TVA,Transformer-based Vision Agent),是依托Transformer架构与因式智能体所构建的新一代视觉检测技术。它区别于传统机器视觉与早期AI视觉,代表了工业智能化转型与视觉…...

Python在TVA算法架构优化中的创新应用(一)

前沿技术背景介绍:AI 智能体视觉系统(TVA,Transformer-based Vision Agent),是依托Transformer架构与因式智能体所构建的新一代视觉检测技术。它区别于传统机器视觉与早期AI视觉,代表了工业智能化转型与视觉…...

使用yubikey-agent实现硬件级SSH密钥安全管理与无缝认证

1. 项目概述:为什么你需要一个硬件密钥管理代理 如果你是一名开发者,或者日常工作中需要频繁使用SSH密钥访问远程服务器、Git仓库,那么你一定对管理那一堆 id_rsa 、 id_ed25519 私钥文件感到头疼。它们要么躺在 ~/.ssh 目录里&#x…...

Pandas快速数据分析实战:紧急需求处理技巧

## 1. 项目概述:当数据分析遇上"快餐文化"上周三凌晨两点,市场部的同事突然发来一份300MB的销售数据,要求"天亮前给出关键趋势摘要"。这种场景下,优雅的代码架构和完美的数据管道都是奢侈品——我们需要的是像…...

VS Code MCP插件生态实战手册:从零搭建→性能压测→CI/CD集成的5步标准化流程

更多请点击: https://intelliparadigm.com 第一章:VS Code MCP 插件生态搭建手册对比评测报告 VS Code 的 MCP(Model Control Protocol)插件生态正处于快速演进阶段,主流实现方案包括官方预览版、社区维护的 mcp-serv…...

企业级Dev Containers标准化配置方案(已落地金融/云原生团队),含安全加固+CI/CD兼容+多架构支持

更多请点击: https://intelliparadigm.com 第一章:企业级Dev Containers标准化配置方案概览 企业级 Dev Containers 的核心目标是实现开发环境的一致性、可复现性与安全合规性。在大型组织中,不同团队使用各异的技术栈和依赖版本&#xff0c…...

从零搭建AI开发环境:手把手教你用Anaconda管理多个PyTorch+CUDA版本(Ubuntu 20.04/22.04实测)

从零搭建AI开发环境:手把手教你用Anaconda管理多个PyTorchCUDA版本(Ubuntu 20.04/22.04实测) 在深度学习项目开发中,不同项目往往需要不同版本的PyTorch和CUDA环境。比如一个项目可能基于PyTorch 1.8和CUDA 10.2开发,…...

Keras深度学习多分类任务实战与优化技巧

1. 深度学习多分类任务实战指南在机器学习领域,多分类问题就像一位超市理货员需要把上千种商品准确归到不同货架——每件商品只能放在一个正确位置,但选择范围却很广。Keras作为深度学习领域的"瑞士军刀",以其简洁的API和模块化设计…...

如何用Logitech鼠标宏实现PUBG零后坐力压枪?3步快速上手指南

如何用Logitech鼠标宏实现PUBG零后坐力压枪?3步快速上手指南 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 你是否还在为《绝地求生…...

别再只用K-Means了!用MATLAB手把手教你搞定更抗噪的K-Medoids聚类(附完整代码)

超越K-Means:用MATLAB实战K-Medoids聚类算法解决噪声数据难题 当你的数据集里混入了异常值,K-Means的表现往往会让你失望——那些偏离群体的数据点像磁铁一样把聚类中心拽离合理位置。这时候,K-Medoids算法就该登场了。与K-Means不同&#xf…...

Windows蓝牙图表突然不见了怎么办

重启电脑,注意不是关机后再启动,而是点击“重启”我试过一些其他的方法但都不奏效,只有这个快速解决了问题...

OpenOmniBot:端侧AI智能体实现Android自动化操作全解析

1. 项目概述:一个能“动手”的端侧AI助手在AI应用井喷的今天,我们早已习惯了与各种聊天机器人对话。它们能写诗、能编程、能解答疑问,但绝大多数都停留在“动口不动手”的阶段——它们理解你的指令,给出建议或生成文本&#xff0c…...

3秒破解百度网盘提取码:智能查询工具如何彻底改变你的资源获取体验

3秒破解百度网盘提取码:智能查询工具如何彻底改变你的资源获取体验 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾因找不到百度网盘提取码而错失重要资源?面对海量学习资料却卡在"请输入…...

智能体开发框架深度解析:从模块化设计到工程实践

1. 项目概述:从代码仓库到智能体开发框架的深度解构最近在GitHub上看到一个名为wshobson/agents的仓库,热度不低。乍一看标题“agents”,很容易让人联想到当下火热的AI智能体(Agent)领域。但作为一个在软件开发和AI应用…...

从‘内华达州离婚率’到‘A/B测试’:用可交换性思想理解分层模型的底层逻辑

从离婚率到A/B测试:用生活案例理解分层模型的底层逻辑 当内华达州的离婚率遇上统计学 1981年,美国内华达州的离婚率高达每千人13.9例,远高于其他州。这个看似简单的社会现象背后,隐藏着一个深刻的统计学问题:如何理解特…...

ComfyUI玩转WD1.4反推标签:避开onnxruntime-gpu与TensorRT的版本坑,保姆级环境配置指南

ComfyUI玩转WD1.4反推标签:避开onnxruntime-gpu与TensorRT的版本坑,保姆级环境配置指南 在AI图像生成领域,自动反推提示词(Tagging)功能正成为工作流中不可或缺的一环。WD1.4模型凭借其出色的识别准确率,成…...

从‘小乌龟’到命令行:一个老派Java程序员迁移到Git的心路历程与配置清单

从‘小乌龟’到命令行:一个老派Java程序员迁移到Git的心路历程与配置清单 第一次在IDEA终端里敲下git commit -m "initial"时,我的手悬在回车键上整整三秒——这行黑底白字的命令,怎么看都比TortoiseSVN那个绿色小乌龟图标少了些安…...

考场信号屏蔽器分布式信号屏蔽器手机信号屏蔽器

在当今信息时代,信号管控成为了众多场所的迫切需求。中科星月的分布式信号屏蔽器凭借其卓越的性能,成为了众多场所的理想选择。中科星月的分布式信号屏蔽器能有效屏蔽2.3.4.5G手机信号,还可屏蔽WiFi蓝牙信号。在学校考场中,曾有学…...

Python统计假设检验速查指南与实战技巧

## 1. 统计假设检验的核心价值与应用场景假设检验是数据分析师和研究人员最常使用的统计工具之一。在Python生态中,借助SciPy、StatsModels等库,我们可以快速实现各类统计检验。这个"17种统计检验速查表"的价值在于:当面对不同数据…...

家庭宽带问题(300兆带宽):手机能正常上网,但是笔记本电脑网速无法跑满。

一、首先是我的路由器设置如下: 二、一开始我手机连的是2.4G网络,使用“”全球网测“app测速如下: 测速网站:相对靠谱公正的22个测速网站(或APP或软件)大全(不断更新中)建议先收藏 后来我手机连上5Gwifi后…...

大模型这把锤子,能砸破多少芯片工程师的护城河

"大力出奇迹"——这是大模型最让人惊讶的地方。你以为某些任务需要专业积累,需要特定知识,需要领域经验,结果大模型上来就能给出一个像模像样的答案。这种"一力降十会"的感觉,出现的频率将会越来越高。现在很…...

AI写论文秘籍!4款AI论文生成工具,帮你轻松完成学术大作

2025 - 2026年AI论文写作工具:学术写作的得力助手 在2025年的学术写作智能化潮流中,越来越多的人开始尝试使用AI写论文的工具。不过,许多现有的AI论文写作工具在撰写硕士和博士论文等长篇作品时,常常面临着缺乏理论深度和逻辑严谨…...

报名实操篇(03)——人工智能训练师培训机构怎么选?5个硬标准+避坑指南

培训机构怎么选?5个硬标准避坑指南卷二报名实操篇 第3篇 核心解决:在鱼龙混杂的培训市场里,快速找到靠谱机构开篇:这个市场真的乱 2026 年,人工智能训练师市场越来越火,培训机构也越来越多。 随便在某度搜&…...

Bebas Neue:开源几何无衬线字体在现代化设计中的技术架构与应用实践

Bebas Neue:开源几何无衬线字体在现代化设计中的技术架构与应用实践 【免费下载链接】Bebas-Neue Bebas Neue font 项目地址: https://gitcode.com/gh_mirrors/be/Bebas-Neue Bebas Neue是一款基于SIL Open Font License v1.1许可证的免费开源显示字体&#…...

如何快速搭建个人哔咔漫画离线图书馆:picacomic-downloader完整指南

如何快速搭建个人哔咔漫画离线图书馆:picacomic-downloader完整指南 【免费下载链接】picacomic-downloader 哔咔漫画 picacomic pica漫画 bika漫画 PicACG 多线程下载器,带图形界面 带收藏夹,已打包exe 下载速度飞快 项目地址: https://gi…...