解决远程连接AlpineLinux Mysql/MariaDB 无法连接的问题

news2024/11/19 18:33:15

在这里插入图片描述

🔥博客介绍`: EvLast

🎥系列专栏:
<< C++项目>>
<<数据结构与算法>>
<< 算法入门>>

🎥 当前专栏:<< C++项目>>

专题 : 解决开发中的日常Bug
👍👍👍👍👍👍👍👍👍👍👍👍
☆*: .。. o(≧▽≦)o .。.:*☆

❤️感谢大家点赞👍收藏⭐评论✍️

在这里插入图片描述

问题描述

远程连接AlpineLinux 中的Mysql出现 无法连接的情况, 从报错可以看出密码问题其实是无法连通的问题.

在这里插入图片描述

原因解释

从参考的资料来看是 AlpineLinux 没有mysql 其实是使用的 MariaDB 的框架 那么MySQL 与 MariaDB 可以参考文章 : MariaDB 和 MySQL 全面对比:选择数据库需要考虑这几点

在这里插入图片描述

既然数据库为 MariaDB 那么我便去找 相关文章发现 需要这么几步解决

  1. 更改配置文件
  2. 打开MySQL/MariaDB用户权限连接
  3. 配置MySQL/MariaDB防火墙的监听

解决步骤

找到配置文件并更改

MariaDB 与普通的MySQL数据库的一个不同在于它的配置文件不止一个,它将不同的数据放入到不同的配置文件中。
根据官方的说法, MariaDB为了提高安全性,默认只监听127.0.0.1中的3306端口并且禁止了远程的TCP链接,我们可以通过下面两步来开启MySQL的远程服务

  1. 注释掉skip-networking选项来开启远程访问.
  2. 注释bind-address项,该项表示运行哪些IP地址的机器连接,允许所有远程的机器连接

  1. 使用一下命令查看配置文件
mysqld --help --verbose

在这里插入图片描述
2. 注释配置文件

这时候只要找到某一配置文件中的 bind-address = 127.0.0.1 进行注释 或者改为 bind-address = 0.0.0.0 这时候即可 , bind-address = 0.0.0.0可以无需注释, 但是 bind-address = 127.0.0.1 必须注释,
在这里插入图片描述
3. 将 skip-networking 变为 0 即 skip-networking=0 如果没有 skip-bind-address 然后添加 skip-bind-address , 有者无需添加

注: 可能无法将全部配置文件找全,或者本来就没有那么多配置文件 请在找到的配置文件中添加 skip-networking=0 skip-bind-address , 如果没有 skip-networking=0skip-bind-address 请手动添加 达到覆盖的目的

打开MySQL/MariaDB用户权限连接

无法进行远程连接其中一个原因便是用户没有开启远程连接的权限

1、使用root登陆mysql (知道密码直接登入)

当你不知道root密码,登陆不了,请修改/etc/my.cnf文件, 在Mysqld 配置段下添加:

skip-grant-tables

可以跳过mysql登陆时密码验证,改好后重启mysql服务:

service mariadb restart

用这个登陆:mysql -u root -p 需要密码直接回车

  1. 更新root账号密码(知道密码可以跳过)
  • 使用mysql数据库:use mysql;
  • 更改root密码:
update user set authentication_string = password(‘root’), password_expired = ‘N’, password_last_changed = now() where user = ‘root’;

注:我的mysql版本未5.7,密码字段为【authentication_string】,不同版本mysql字段不一样,可以使用【select * from user;】查看密码字段

  1. 开启root账号远程登陆权限

1、使用mysql数据库:

use mysql;

2、查看root账号权限:

select user,host from user;

在这里插入图片描述

如果root不是【%】,使用语句更新:

update user set host = ‘%’ where user = ‘root’;

或者
root账户中的host项是localhost表示该账号只能进行本地登录,我们需要修改权限,输入命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

修改权限。%表示针对所有IP,password表示将用这个密码登录root用户,如果想只让某个IP段的主机连接,可以修改为

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;

注意:此时远程连接的密码可能与你在本地登录时的密码不同了,主要看你在IDENTIFIED BY后面给了什么密码,具体的请参考GRANT命令

最后

FLUSH PRIVILEGES;

打开防火墙

在 Alpine Linux 中,firewall-cmd 并不是用于管理防火墙的工具,因为 Alpine 使用的是 iptables,并且有一个名为 awall (Alpine Wall) 的前端界面来帮助管理 iptables 规则
。如果想要检查防火墙状态或者管理防火墙规则,应该使用 iptables 相关的命令。

如果出现

ash: iptables: not found
  1. 安装 iptables:
apk add iptables
  1. 添加MySQL连接端口
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

在这里插入图片描述

  1. 保存你的规则,以便它们在系统重启后依然有效:
iptables-save > /etc/iptables/rules.v4
  1. 确保 iptables 在系统启动时自动启动:
rc-update add iptables
  1. 如果你想要查看当前的 iptables 规则,可以使用以下命令:
iptables -L

防火墙重复情况

如果你发现有重复的防火墙规则,你可以通过 iptables 命令来删除特定的规则。使用以下步骤来删除重复的防火墙规则:

  1. 列出当前的 iptables 规则
    列出所有的 iptables 规则,以确定哪些规则是重复的:

    iptables -L --line-numbers
    

    这将列出所有的规则,包括规则编号、协议、选项、源地址、目标地址和端口。
    这将显示每条规则的编号,格式如下:

    Chain INPUT (policy ACCEPT)
    num  target     prot opt source               destination
    1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3306
    2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3306
    
    
  2. 删除重复的规则
    其中num 为编号 一旦确定了要删除的规则的编号,就使用 iptables -D 命令来删除特定的规则。例如,如果你想要删除第一个 ACCEPT 规则,你可以使用:

    iptables -D INPUT 1
    

    这里 INPUT 是链的名称,1 是规则的编号。请确保使用正确的链名称和规则编号。

  3. 保存新的 iptables 配置
    删除规则后,你需要保存新的配置,以确保在系统重启后更改生效。在 Alpine Linux 中,你可以使用 iptables-save 命令来保存规则:

    iptables-save > /etc/iptables/rules.v4
    

    或者,如果你的系统使用 rc-update 来管理启动脚本,你可以确保 iptables 规则在启动时应用:

    rc-update add iptables
    
  4. 重启 iptables 服务
    为了确保更改立即生效,你可以重启 iptables 服务:

    iptables-save
    iptables-restore < /etc/iptables/rules.v4
    

    或者,如果你的系统使用 s6openrc,你可以使用:

    rc-service iptables restart
    

    或者

    s6-rc unsupervisor iptables
    s6-rc supervisor iptables
    
  5. 检查防火墙状态
    最后,检查防火墙规则确保重复的规则已被删除:

    iptables -L -n -v
    

以上便是我对于这次问题的眼界与解决方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2166283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务端的 Session 详解

0x01&#xff1a;Session 简介 Session 是在 Cookie 的基础上发展的&#xff0c;其主要功能和 Cookie 一样&#xff0c;都是为了解决 HTTP 无状态的痛点&#xff0c;和 Cookie 不同的是&#xff0c;它是将大部分数据存储在了服务端&#xff0c;而只给用户一个 SESSID&#xff…

django学习入门系列之第十点《A 案例: 员工管理系统21》

文章目录 16 Ajax(订单案例)16.9 编辑想要去数据库中获取数据时:对象/字典将具体内容的错误信息传入到前端&#xff08;Ajax&#xff09;将数据库数据传入前端&#xff08;Ajax&#xff09;清空新建订单的数据 16.10 编辑后保存 往期回顾 16 Ajax(订单案例) 16.9 编辑 点击编辑…

TCN预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测

TCN预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测 目录 TCN预测 | MATLAB实现TCN时间卷积神经网络多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料预测效果

Python第一篇:Python解释器

一&#xff1a;python解释器 python解释器是一款程序&#xff0c;用于解释、执行Python源代码。 一般python解释器都是c python使用c编写的&#xff0c;还有j python用java编写的。 二&#xff1a;python下载 三&#xff1a;使用示例 python进入控制台&#xff0c;python。 三…

【react案例】实现评论列表

1. 需求 展示评论列表实现删除功能 2.1 只有自己的评论才展示删除按钮 2.2 点击删除按钮&#xff0c;删除当前评论tab切换&#xff08;点击对应tab&#xff0c;对tab文案高亮处理&#xff09;评论高亮评论排序&#xff08;最新、最热&#xff09; 2. 实现思路 useState维护评…

基于vue框架的大同传统文化非物质文化宣传管理系统jzo9d(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,非遗类型,文化遗产 开题报告内容 基于Vue框架的大同传统文化非物质文化宣传管理系统开题报告 一、研究背景 在全球化加速的今天&#xff0c;传统文化的保护与传承面临着前所未有的挑战。大同&#xff0c;作为中国历史文化名城&a…

职场能力强的人都在做什么---今日头条

【职场里,能力强的人都在做哪些事... - 今日头条】https://m.toutiao.com/is/ikn6kt9q/ 知识雷达 2024-09-21 16:33 目录 职场里,能力强的人都在做哪些事呢? 1、复盘; 2、多角度思考;3、记录信息; 4、永远积极主动;5、主动获取信息差; 6、明确人和人的关系;7、…

STM32杂项

STM32杂项 1.启动过程2.中断3.GPIO4.Systick5.串口printf6.独立看门狗 记录单片机在工作中遇到的问题和特殊情况。 1.启动过程 M3/M4/M7内核复位后&#xff0c;做的第一件事&#xff1a; 1.从地址0x0000 0000处取出堆栈指针MSP的初始值&#xff0c;该值就是栈顶地址。 2.从地址…

2024必备中英互译利器全知道

现在英语目前还是学习最广泛的第二语言&#xff0c;所以很多资料都有英文的版本。如果外语不好&#xff0c;那中英互译翻译工具就能帮我们解决这个问题。今天我们一起来探讨下有哪些好用的翻译工具。 1.福昕在线翻译 链接直达>>https://fanyi.pdf365.cn/doc 这个工具…

【linux】进度条

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;linux笔记仓 目录 01.屏幕缓冲区换行&#xff08;LF, \n&#xff09;和回车&#xff08;CR, \r&#xff09;换行回车在屏幕缓冲区中的作用代码块1&#xff1a;代码块2&#xff1a; 02.进度条优化版…

SpringBoot3+Swagger3(最新版springdoc-openapi教程)

第一步&#xff1a;引入springdoc-openapi依赖 <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.6.0</version></dependency> 第二步&#xff1a; 配置…

打开ffmpeg编码器的时候报错:avcodec_open2()返回-22

[h264_v4l2m2m 0x555555617a00] Could not find a valid device [h264_v4l2m2m 0x555555617a00] cant configure encoder 前言&#xff1a;先做一个操作&#xff0c;查找编码器的时候&#xff0c;使用名字查找的方式&#xff1a; const AVCodec *avcodec_find_encoder_by_n…

ubuntu数据硬盘故障导致系统启动失败

背景&#xff1a; 系统盘损坏或者/etc/fatab误修改导致开机启动挂载失败系统无法启动 解决方法 重启

BFS 解决最短路径问题, 迷宫中离入口最近的出口,最小基因变化,单词接龙,为高尔夫比赛砍树

文章目录 1926. 迷宫中离入口最近的出口433. 最小基因变化127. 单词接龙675. 为高尔夫比赛砍树 1926. 迷宫中离入口最近的出口 边权为1的最短路径问题 我们要知道上下左右都是可以走的 &#xff08;用队列&#xff09;走过的地方不要在走了&#xff0c;这样会进入死循环&#x…

零信任内网安全访问

随着互联网的持续发展&#xff0c;便捷的共享方式极大地提高了企业的生产力和工作效率&#xff0c;但随之也给企业内网带来了极大的安全隐患。企业内网承载大量的核心资产和机密数据&#xff0c;一旦受到攻击可能会造成大量损失&#xff0c;因此&#xff0c;如何通过零信任内网…

快手一面:给定一棵二叉树,要求将其转换为其镜像?

目录标题 题解&#xff1a;二叉树的镜像&#xff08;Invert Binary Tree&#xff09;问题描述示例解题思路代码实现详细分析复杂度分析优点注意事项&#x1f495; 题解&#xff1a;二叉树的镜像&#xff08;Invert Binary Tree&#xff09; 问题描述 给定一棵二叉树&#xff…

探索AI新纪元:揭秘Mammoth库的神秘面纱

文章目录 探索AI新纪元&#xff1a;揭秘Mammoth库的神秘面纱背景&#xff1a;为何选择Mammoth&#xff1f;简介&#xff1a;Mammoth是什么&#xff1f;安装&#xff1a;如何获取Mammoth&#xff1f;使用&#xff1a;Mammoth的基本函数场景应用&#xff1a;Mammoth在实际中的运用…

基于Python大数据的B站热门视频的数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

宠物空气净化器和普通的空气净化器有区别吗?哪款能吸猫毛

这不是国庆节要来了吗&#xff0c;想着假期变多了可以多陪一下自家的小猫咪&#xff0c;但是也怕猫咪的毛发太多让我产生退缩的念头。 刚开始养的时候&#xff0c;我就知道猫咪是会掉毛的&#xff0c;毕竟猫咪的毛发这么旺盛&#xff0c;掉毛也是正常的&#xff0c;但是我似乎…

SpringCloud源码:客户端分析(二)- 客户端源码分析

背景 我们继续分析EurekaClient的两个自动化配置类&#xff1a; 自动化配置类功能职责EurekaClientAutoConfiguration配置EurekaClient确保了Eureka客户端能够正确地&#xff1a;- 注册到Eureka服务端- 周期性地发送心跳信息来更新服务租约- 下线时通知Eureka服务端- 获取服务实…