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

Linux 安装 MySQL 与远程连接排障(yum 方案)


1. 这篇文章你能学到什么

  • yum在 Linux 上安装 MySQL(以常见的 CentOS 7/8 生态为例)
  • 启动/停止/设置开机自启
  • 初始化 root 密码、创建数据库与账号
  • (可选)开放远程连接:安全组/防火墙/MySQL 权限与绑定地址
  • 常见报错的排障思路

目录

  • 先确认系统与安装路线
  • 再完成 MySQL 安装、初始化和授权
  • 最后处理远程连接与常见报错排障

2. 安装前确认系统与包管理器

先确认系统版本(不同发行版命令略有差异):

cat/etc/os-release

确认 yum 可用:

yum--version

3. 安装 MySQL(两条路线)

3.1 路线一:安装 MariaDB(最省事,适合入门)

说明:在不少发行版里,mysql实际会被 MariaDB 替代。

yuminstall-ymariadb mariadb-server

启动并设置开机自启:

systemctl start mariadb systemctlenablemariadb systemctl status mariadb

3.2 路线二:安装 MySQL Community(更贴近真实 MySQL)

通常需要先添加 MySQL 官方仓库(不同系统略有不同),然后再安装:

yuminstall-ymysql-server

启动并设置开机自启:

systemctl start mysqld systemctlenablemysqld systemctl status mysqld

4. 初始化与安全加固(强烈建议做)

4.1 初始化安全脚本(推荐)

MariaDB:

mysql_secure_installation

MySQL:

mysql_secure_installation

你需要按提示完成:

  • 设置 root 密码
  • 删除匿名用户
  • 禁止 root 远程登录(如只是学习阶段也可按需选择)
  • 删除 test 库
  • 刷新权限表

4.2 登录验证

mysql-uroot-p

5. 创建数据库、用户与授权(最常用)

进入 MySQL 后:

-- 1) 建库CREATEDATABASEdemoDEFAULTCHARACTERSETutf8mb4;-- 2) 创建用户('%' 表示允许任意 IP;更安全的是写固定 IP 或网段)CREATEUSER'app'@'%'IDENTIFIEDBY'StrongPassword_123';-- 3) 授权GRANTALLPRIVILEGESONdemo.*TO'app'@'%';-- 4) 刷新权限FLUSHPRIVILEGES;

如果你只是想走一遍最小安装链路,可以按这个顺序做:

  1. yum install
  2. systemctl start mysqldsystemctl start mariadb
  3. mysql_secure_installation
  4. mysql -uroot -p
  5. 建库、建用户、授权
  6. 需要远程连时,再处理安全组、防火墙和bind-address

6. 远程连接(可选,学习阶段常用,上线谨慎)

6.1 云服务器安全组

需要放行:

  • 3306(MySQL)

建议:

  • 只放行你本机公网 IP(白名单),不要全网开放。

6.2 系统防火墙(不同系统不同)

如果是 firewalld:

firewall-cmd --list-ports firewall-cmd --add-port=3306/tcp--permanentfirewall-cmd--reload

6.3 MySQL 绑定地址(关键坑)

如果 MySQL 只监听127.0.0.1,外网一定连不上。

  • 找到配置文件(常见路径之一):
    • /etc/my.cnf
    • /etc/mysql/my.cnf
    • /etc/my.cnf.d/*.cnf

grep查:

grep-R"bind-address"-n/etc2>/dev/null|head

如果存在:

  • bind-address=127.0.0.1只允许本机
  • 改成0.0.0.0表示监听所有网卡(学习阶段可用,上线谨慎)

修改后重启:

systemctl restart mysqld# 或 systemctl restart mariadb

7. 快速排障清单(最常见)

7.1 本机能连,外网连不上

按顺序排:

  • MySQL 是否真的在运行:
ps-ef|grepmysql
  • 端口是否监听:
ss-lntp|grep3306
  • 安全组是否放行 3306
  • 系统防火墙是否放行 3306
  • MySQL 用户授权是否允许远程('user'@'%'
  • bind-address是否限制了本机

7.2 报错:Access denied for user

常见原因:

  • 用户名/密码不对
  • 授权 host 不对(比如只授权了'app'@'localhost'
  • 忘了FLUSH PRIVILEGES

7.3 报错:Can’t connect to MySQL server / Connection timed out

常见原因:

  • 端口没放行(安全组/防火墙)
  • MySQL 没监听公网(bind-address
  • 服务没启动

8. 建议的上线姿势(安全提醒)

  • 不要把 3306 对公网全开放
  • 用内网访问(同 VPC)或 VPN / 堡垒机
  • 强密码 + 最小权限账号
  • 定期备份(mysqldump 或定时快照)

9. 小结

MySQL 安装看起来命令不多,但真正容易出问题的是“远程连接链路”:

  • 服务是否启动
  • 3306 是否监听
  • 安全组/防火墙是否放行
  • 用户授权 host 是否正确
  • bind-address是否限制本机

只要你按这条链排查,大多数“本机能连、远程连不上”的问题都能快速定位。

http://www.jsqmd.com/news/484052/

相关文章:

  • Scholar-Agent:你的全自动文献调研工具
  • VF控制的仿真与代码生成
  • 拒绝Python依赖!SpringBoot 3 + ONNX Runtime 打造纯Java版YOLOv8通用检测服务:从模型转换到高并发API封装的全链路实战
  • 虚拟机-持续部署流水线最简工具yunedit-ssh
  • 深度解析:安卓开发工程师进阶之路——聚焦鸿蒙、KMP与架构优化
  • 基于动态窗口法(DWA)的路径规划算法实现
  • 【底层心法】彻底抛弃虚拟串口!撕开 USB 协议栈黑盒,用 Custom HID 打造 1000Hz 零延迟的桌面智能外设
  • 深耕移动技术,助力民航数字化:解析高要求 Android 开发工程师的角色与能力
  • 双极性SPWM控制单相全桥逆变电路仿真探索:电压电流双闭环控制
  • 第 178 场双周赛Q1:101014. 找到第一个唯一偶数
  • 测了一整天 Nano Banana 2,整理了 20 个实际能用的场景(附免费入口)
  • 探索风储调频:三机九节点模型中的储能奥秘
  • 【SpringBoot篇】详解Bean的管理(获取bean,bean的作用域,第三方bean)
  • 基于双层优化的电动汽车优化调度研究:探索电力系统新视角
  • 【技术分享】抖音聚合采集软件使用教程(附代码示例)
  • SourceTree 推送后修改commit message
  • 2026年10款热门降AI率工具全测评,轻松搞定论文降AI难题(持续更新)
  • YOLO26改进92:全网首发--c3k2模块添加EBlock模块:新型注意力机制增强高效卷积神经网络的感受野
  • SpringBoot 3.x 升级“鬼故事”:Controller 参数突然变 null?别慌,这不是 Bug,是 JDK 17 的“阳谋”!
  • 算法入门(一):什么是算法?
  • 从零到一:我设计了一个抗量子计算的哈希函数 REV-512
  • Linux命令速查指南
  • 鸿蒙开发工程师在金融科技领域的深度解析与实践指南
  • 交互式图表革新 AI 学习体验 ChatGPT 与 Claude 开启可视化教育新时代
  • Matlab 中 VMD 分解联合小波阈值去噪的探索与实践
  • 2026年10款降AI率工具实测:亲测好用不踩坑
  • 第一章 简单使用linux
  • 【监控】Spring Boot+Prometheus+Grafana实现可视化监控
  • B进制星球
  • 鸿蒙项目安卓工程师进阶之路:Kotlin Multiplatform (KMP) 与鸿蒙原生开发深度解析