<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on 蛋蛋忧桑</title><link>https://dandansad.com/tags/linux/</link><description>Recent content in Linux on 蛋蛋忧桑</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Tue, 28 Oct 2025 15:21:14 +0800</lastBuildDate><atom:link href="https://dandansad.com/tags/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>.bash_profile配置-命令行工具代理</title><link>https://dandansad.com/2025/10/28/bash_profile%E9%85%8D%E7%BD%AE-%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7%E4%BB%A3%E7%90%86/</link><pubDate>Tue, 28 Oct 2025 15:21:14 +0800</pubDate><guid>https://dandansad.com/2025/10/28/bash_profile%E9%85%8D%E7%BD%AE-%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%B7%A5%E5%85%B7%E4%BB%A3%E7%90%86/</guid><description>&lt;p&gt;mac的终端中要让命令行工具使用代理，在&lt;code&gt;.bash_profile&lt;/code&gt;中写入如下代码。用&lt;code&gt;proxy&lt;/code&gt;命令开启，&lt;code&gt;unproxy&lt;/code&gt;命令关闭。&lt;/p&gt;
&lt;p&gt;注意：命令默认是一次性的、临时生效的。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias proxy&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export http_proxy=socks5://127.0.0.1:7890;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export https_proxy=socks5://127.0.0.1:7890;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export all_proxy=socks5://127.0.0.1:7890;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export no_proxy=socks5://127.0.0.1:7890;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export HTTP_PROXY=socks5://127.0.0.1:7890;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export HTTPS_PROXY=socks5://127.0.0.1:7890;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export ALL_PROXY=socks5://127.0.0.1:7890;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; export NO_PROXY=socks5://127.0.0.1:7890;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias unproxy&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; unset http_proxy;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; unset https_proxy;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; unset all_proxy;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; unset no_proxy;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; unset HTTP_PROXY;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; unset HTTPS_PROXY;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; unset ALL_PROXY;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; unset NO_PROXY&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>.vimrc配置文件</title><link>https://dandansad.com/2025/10/23/vimrc%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/</link><pubDate>Thu, 23 Oct 2025 11:54:24 +0800</pubDate><guid>https://dandansad.com/2025/10/23/vimrc%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6/</guid><description>&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;----------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;基础设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;----------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;开启语法高亮&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;syntax&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;on&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;显示行号&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;number&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;搜索高亮&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;hlsearch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;incsearch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;启用鼠标操作（可选）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;mouse=a&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;显示状态栏&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;laststatus=2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;显示行末空格和制表符&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;list&lt;/span&gt; &lt;span style="color:#e6db74"&gt;listchars=tab:&amp;gt;-,trail:·&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;----------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;缩进设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;----------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;autoindent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;smartindent&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;expandtab&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;tabstop=4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;shiftwidth=4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;softtabstop=4&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;----------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;TrueColor&lt;/span&gt; &lt;span style="color:#e6db74"&gt;支持&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#e6db74"&gt;----------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;if&lt;/span&gt; &lt;span style="color:#e6db74"&gt;has(&amp;#34;termguicolors&amp;#34;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#e6db74"&gt;set&lt;/span&gt; &lt;span style="color:#e6db74"&gt;termguicolors&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;endif&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Hadoop配置——两个节点（master和slave1）</title><link>https://dandansad.com/2025/05/29/hadoop%E9%85%8D%E7%BD%AE-%E4%B8%A4%E4%B8%AA%E8%8A%82%E7%82%B9master%E5%92%8Cslave1/</link><pubDate>Thu, 29 May 2025 14:42:14 +0800</pubDate><guid>https://dandansad.com/2025/05/29/hadoop%E9%85%8D%E7%BD%AE-%E4%B8%A4%E4%B8%AA%E8%8A%82%E7%82%B9master%E5%92%8Cslave1/</guid><description>&lt;h2 id="配置要求"&gt;&lt;a href="#%e9%85%8d%e7%bd%ae%e8%a6%81%e6%b1%82" class="header-anchor"&gt;&lt;/a&gt;配置要求
&lt;/h2&gt;&lt;p&gt;目标是配置一个基本的 Hadoop 分布式集群：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;一台主节点：&lt;code&gt;master&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一台从节点：&lt;code&gt;slave1&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;支持：HDFS + YARN&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Java 已配置&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hadoop 已安装成功，路径在 &lt;code&gt;/opt/hadoop&lt;/code&gt;（你可替换为实际路径）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用 &lt;code&gt;hadoop version&lt;/code&gt; 命令测试&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;注：前置参考资料在文末，建议先按照前置参考资料进行安装配置到 &lt;code&gt;hadoop version&lt;/code&gt; 命令成功执行步骤，再继续参照本文章。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="修改hostshostname"&gt;&lt;a href="#%e4%bf%ae%e6%94%b9hostshostname" class="header-anchor"&gt;&lt;/a&gt;修改hosts、hostname
&lt;/h2&gt;&lt;p&gt;hosts: /etc/hosts
集群所有主机IP地址与对应主机名
格式：IP（空）主机名&lt;/p&gt;
&lt;p&gt;hostname: /etc/hostname
主节点命名为master，子节点命名为slave1
把主机名直接写入此文件（只能保留一个名字），定义本机的主机名（可能需要重启生效）
使用 &lt;code&gt;sudo hostnamectl set-hostname 新主机名&lt;/code&gt; 设置（即时生效）
使用 &lt;code&gt;hostname&lt;/code&gt; 命令查看当前主机名&lt;/p&gt;
&lt;h2 id="ssh-配置免密"&gt;&lt;a href="#ssh-%e9%85%8d%e7%bd%ae%e5%85%8d%e5%af%86" class="header-anchor"&gt;&lt;/a&gt;SSH 配置免密
&lt;/h2&gt;&lt;h4 id="1-生成-ssh-密钥对如果尚未生成"&gt;&lt;a href="#1-%e7%94%9f%e6%88%90-ssh-%e5%af%86%e9%92%a5%e5%af%b9%e5%a6%82%e6%9e%9c%e5%b0%9a%e6%9c%aa%e7%94%9f%e6%88%90" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;1. 生成 SSH 密钥对&lt;/strong&gt;（如果尚未生成）
&lt;/h4&gt;&lt;p&gt;在每台机器上执行：&lt;code&gt;ssh-keygen -t rsa&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;一路回车即可（不要设置密码短语）。&lt;/p&gt;
&lt;h4 id="2-将自己的公钥添加到目标机器的-authorized_"&gt;&lt;a href="#2-%e5%b0%86%e8%87%aa%e5%b7%b1%e7%9a%84%e5%85%ac%e9%92%a5%e6%b7%bb%e5%8a%a0%e5%88%b0%e7%9b%ae%e6%a0%87%e6%9c%ba%e5%99%a8%e7%9a%84-authorized_" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;2. 将自己的公钥添加到目标机器的 authorized_keys 中&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;在 &lt;code&gt;master&lt;/code&gt; 上执行以下命令，把自己的公钥发给 &lt;code&gt;slave1&lt;/code&gt; ：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh-copy-id root@localhost
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh-copy-id root@slave1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;同理，在 &lt;code&gt;slave1&lt;/code&gt; 上执行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh-copy-id root@localhost
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh-copy-id root@master
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;从每台机器尝试 ssh 到其他机器（包括自己）进行验证：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh root@localhost
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh root@master
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh root@slave1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="配置hadoop的配置文件"&gt;&lt;a href="#%e9%85%8d%e7%bd%aehadoop%e7%9a%84%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;配置Hadoop的配置文件
&lt;/h2&gt;&lt;h3 id="1-core-sitexml"&gt;&lt;a href="#1-core-sitexml" class="header-anchor"&gt;&lt;/a&gt;1. core-site.xml
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hadoop.tmp.dir
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; file:/opt/hadoop/tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; location to store temporary files
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fs.defaultFS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hdfs://master:9000
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-hdfs-sitexml"&gt;&lt;a href="#2-hdfs-sitexml" class="header-anchor"&gt;&lt;/a&gt;2. hdfs-site.xml
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dfs.replication
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dfs.namenode.name.dir
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; file:/opt/hadoop/tmp/dfs/name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dfs.datanode.data.dir
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; file:/opt/hadoop/tmp/dfs/data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-mapred-sitexml"&gt;&lt;a href="#3-mapred-sitexml" class="header-anchor"&gt;&lt;/a&gt;3. mapred-site.xml
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mapreduce.framework.name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; yarn
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; yarn.app.mapreduce.am.env
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; HADOOP_MAPRED_HOME&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/opt/hadoop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mapreduce.map.env
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; HADOOP_MAPRED_HOME&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/opt/hadoop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mapreduce.reduce.env
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; HADOOP_MAPRED_HOME&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/opt/hadoop
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-yarn-sitexml"&gt;&lt;a href="#4-yarn-sitexml" class="header-anchor"&gt;&lt;/a&gt;4. yarn-site.xml
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; yarn.resourcemanager.hostname
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; master
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; yarn.nodemanager.aux-services
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mapreduce_shuffle
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="5-workers以前叫-slaves"&gt;&lt;a href="#5-workers%e4%bb%a5%e5%89%8d%e5%8f%ab-slaves" class="header-anchor"&gt;&lt;/a&gt;5. workers（以前叫 slaves）
&lt;/h3&gt;&lt;p&gt;列出所有的从节点（一个 hostname 一行）。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;slave1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="复制配置文件"&gt;&lt;a href="#%e5%a4%8d%e5%88%b6%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;复制配置文件
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;scp -r /opt/hadoop/etc/hadoop/ root@slave1:/opt/hadoop/etc/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="启动-hadoop"&gt;&lt;a href="#%e5%90%af%e5%8a%a8-hadoop" class="header-anchor"&gt;&lt;/a&gt;启动 Hadoop
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs namenode -format
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;start-dfs.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;start-yarn.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="验证是否成功"&gt;&lt;a href="#%e9%aa%8c%e8%af%81%e6%98%af%e5%90%a6%e6%88%90%e5%8a%9f" class="header-anchor"&gt;&lt;/a&gt;验证是否成功
&lt;/h2&gt;&lt;p&gt;在 master 和 slave1 分别运行：&lt;code&gt;jps &lt;/code&gt;你应该看到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;master&lt;/strong&gt; 节点有：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;NameNode&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;SecondaryNameNode&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;ResourceManager&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;slave1&lt;/strong&gt; 节点有：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;DataNode&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NodeManager&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/05/image-5.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/05/image-6.png"&gt;&lt;/p&gt;
&lt;p&gt;然后运行以下命令进行测试，检查是否有问题：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs dfs -ls /
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs dfs -mkdir /testdir
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs dfs -ls /
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;Hello Hadoop&amp;#34;&lt;/span&gt; &amp;gt; hello.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs dfs -put hello.txt /testdir/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs dfs -ls /testdir/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs dfs -cat /testdir/hello.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs dfs -get /testdir/hello.txt ./hello_from_hdfs.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs dfs -rm /testdir/hello.txt
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs dfs -rmdir /testdir
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hdfs dfsadmin -report
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;如果出现问题请先检查防火墙是否开放相应端口。&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 开放端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; p in &lt;span style="color:#ae81ff"&gt;9000&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;9870&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;50010..50020&lt;span style="color:#f92672"&gt;}&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;50075&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;8088&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;8042&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;9864&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;9866&lt;/span&gt; 9867; &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt; firewall-cmd --permanent --add-port&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;p&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;/tcp; &lt;span style="color:#66d9ef"&gt;done&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; firewall-cmd --reload
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 关闭端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; p in &lt;span style="color:#ae81ff"&gt;9000&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;9870&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;50010..50020&lt;span style="color:#f92672"&gt;}&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;50075&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;8088&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;8042&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;9864&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;9866&lt;/span&gt; 9867; &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt; firewall-cmd --permanent --remove-port&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;p&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;/tcp; &lt;span style="color:#66d9ef"&gt;done&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; firewall-cmd --reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;注意：经过后期实践，发现以上端口没有涵盖Hadoop的所有所需开放端口，最方便的解决方法是暂时关闭防火墙。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="前置参考资料"&gt;&lt;a href="#%e5%89%8d%e7%bd%ae%e5%8f%82%e8%80%83%e8%b5%84%e6%96%99" class="header-anchor"&gt;&lt;/a&gt;前置参考资料
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://dandansad.com/2025/05/22/%e5%ae%89%e8%a3%85hadoop/" target="_blank" rel="noopener"
 &gt;https://dandansad.com/2025/05/22/%e5%ae%89%e8%a3%85hadoop/&lt;/a&gt;&lt;/p&gt;</description></item><item><title>安装Hadoop</title><link>https://dandansad.com/2025/05/22/%E5%AE%89%E8%A3%85hadoop/</link><pubDate>Thu, 22 May 2025 14:40:19 +0800</pubDate><guid>https://dandansad.com/2025/05/22/%E5%AE%89%E8%A3%85hadoop/</guid><description>&lt;p&gt;&lt;strong&gt;注意：Hadoop（尤其是 3.x 及以下版本）不兼容 Java 9+ 的模块系统，如果之前安装了 Java 的更高版本，则需要重新安装更低版本进行配置。&lt;/strong&gt;&lt;/p&gt;
&lt;h1 id="安装jdk"&gt;&lt;a href="#%e5%ae%89%e8%a3%85jdk" class="header-anchor"&gt;&lt;/a&gt;安装JDK
&lt;/h1&gt;&lt;h2 id="1下载jdk18安装包"&gt;&lt;a href="#1%e4%b8%8b%e8%bd%bdjdk18%e5%ae%89%e8%a3%85%e5%8c%85" class="header-anchor"&gt;&lt;/a&gt;1.下载JDK1.8安装包
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget --no-check-certificate https://repo.huaweicloud.com/java/jdk/8u151-b12/jdk-8u151-linux-x64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2解压下载的jdk18安装包"&gt;&lt;a href="#2%e8%a7%a3%e5%8e%8b%e4%b8%8b%e8%bd%bd%e7%9a%84jdk18%e5%ae%89%e8%a3%85%e5%8c%85" class="header-anchor"&gt;&lt;/a&gt;2.解压下载的JDK1.8安装包
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar -zxvf jdk-8u151-linux-x64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3移动并重命名jdk包"&gt;&lt;a href="#3%e7%a7%bb%e5%8a%a8%e5%b9%b6%e9%87%8d%e5%91%bd%e5%90%8djdk%e5%8c%85" class="header-anchor"&gt;&lt;/a&gt;3.移动并重命名JDK包
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mv jdk1.8.0_151/ /usr/java8
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="4配置java环境变量如果说不想修改原有使用的java版本可以跳过"&gt;&lt;a href="#4%e9%85%8d%e7%bd%aejava%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f%e5%a6%82%e6%9e%9c%e8%af%b4%e4%b8%8d%e6%83%b3%e4%bf%ae%e6%94%b9%e5%8e%9f%e6%9c%89%e4%bd%bf%e7%94%a8%e7%9a%84java%e7%89%88%e6%9c%ac%e5%8f%af%e4%bb%a5%e8%b7%b3%e8%bf%87" class="header-anchor"&gt;&lt;/a&gt;4.配置Java环境变量（如果说不想修改原有使用的Java版本，可以跳过）
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export JAVA_HOME=/usr/java8&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/profile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export PATH=$PATH:$JAVA_HOME/bin&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/profile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;source /etc/profile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="5查看java是否成功安装"&gt;&lt;a href="#5%e6%9f%a5%e7%9c%8bjava%e6%98%af%e5%90%a6%e6%88%90%e5%8a%9f%e5%ae%89%e8%a3%85" class="header-anchor"&gt;&lt;/a&gt;5.查看Java是否成功安装
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;java -version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="安装hadoop"&gt;&lt;a href="#%e5%ae%89%e8%a3%85hadoop" class="header-anchor"&gt;&lt;/a&gt;安装Hadoop
&lt;/h1&gt;&lt;h2 id="1下载hadoop安装包"&gt;&lt;a href="#1%e4%b8%8b%e8%bd%bdhadoop%e5%ae%89%e8%a3%85%e5%8c%85" class="header-anchor"&gt;&lt;/a&gt;1.下载Hadoop安装包
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget --no-check-certificate https://repo.huaweicloud.com/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2解压hadoop安装包至opthadoop"&gt;&lt;a href="#2%e8%a7%a3%e5%8e%8bhadoop%e5%ae%89%e8%a3%85%e5%8c%85%e8%87%b3opthadoop" class="header-anchor"&gt;&lt;/a&gt;2.解压Hadoop安装包至/opt/hadoop
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tar -zxvf hadoop-3.1.3.tar.gz -C /opt/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mv /opt/hadoop-3.1.3 /opt/hadoop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3配置hadoop环境变量"&gt;&lt;a href="#3%e9%85%8d%e7%bd%aehadoop%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f" class="header-anchor"&gt;&lt;/a&gt;3.配置Hadoop环境变量
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export HADOOP_HOME=/opt/hadoop/&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/profile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export PATH=$PATH:$HADOOP_HOME/bin&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/profile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export PATH=$PATH:$HADOOP_HOME/sbin&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/profile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;source /etc/profile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="4修改配置文件yarn-envsh和hadoop-envsh"&gt;&lt;a href="#4%e4%bf%ae%e6%94%b9%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6yarn-envsh%e5%92%8chadoop-envsh" class="header-anchor"&gt;&lt;/a&gt;4.修改配置文件yarn-env.sh和hadoop-env.sh
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;export JAVA_HOME=/usr/java8&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /opt/hadoop/etc/hadoop/yarn-env.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;export JAVA_HOME=/usr/java8&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; /opt/hadoop/etc/hadoop/hadoop-env.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="5测试hadoop是否安装成功"&gt;&lt;a href="#5%e6%b5%8b%e8%af%95hadoop%e6%98%af%e5%90%a6%e5%ae%89%e8%a3%85%e6%88%90%e5%8a%9f" class="header-anchor"&gt;&lt;/a&gt;5.测试Hadoop是否安装成功
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hadoop version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="配置hadoop"&gt;&lt;a href="#%e9%85%8d%e7%bd%aehadoop" class="header-anchor"&gt;&lt;/a&gt;配置Hadoop
&lt;/h1&gt;&lt;h2 id="1修改hadoop配置文件-core-sitexml"&gt;&lt;a href="#1%e4%bf%ae%e6%94%b9hadoop%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6-core-sitexml" class="header-anchor"&gt;&lt;/a&gt;1.修改Hadoop配置文件 core-site.xml
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;a. 执行以下命令开始进入编辑页面。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vi /opt/hadoop/etc/hadoop/core-site.xml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;b. 输入i进入编辑模式。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;c. 在节点内插入如下内容。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hadoop.tmp.dir
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; file:/opt/hadoop/tmp
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; location to store temporary files
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; fs.defaultFS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; hdfs://localhost:9000
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;d. 按Esc键退出编辑模式，输入:wq保存退出。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2修改hadoop配置文件-hdfs-sitexml"&gt;&lt;a href="#2%e4%bf%ae%e6%94%b9hadoop%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6-hdfs-sitexml" class="header-anchor"&gt;&lt;/a&gt;2.修改Hadoop配置文件 hdfs-site.xml
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;a. 执行以下命令开始进入编辑页面。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vi /opt/hadoop/etc/hadoop/hdfs-site.xml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;b. 输入i进入编辑模式。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;c. 在节点内插入如下内容。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dfs.replication
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dfs.namenode.name.dir
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; file:/opt/hadoop/tmp/dfs/name
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dfs.datanode.data.dir
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; file:/opt/hadoop/tmp/dfs/data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;d. 按Esc键退出编辑模式，输入:wq保存退出。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="配置ssh免密登录"&gt;&lt;a href="#%e9%85%8d%e7%bd%aessh%e5%85%8d%e5%af%86%e7%99%bb%e5%bd%95" class="header-anchor"&gt;&lt;/a&gt;配置SSH免密登录
&lt;/h1&gt;&lt;h2 id="1执行以下命令创建公钥和私钥"&gt;&lt;a href="#1%e6%89%a7%e8%a1%8c%e4%bb%a5%e4%b8%8b%e5%91%bd%e4%bb%a4%e5%88%9b%e5%bb%ba%e5%85%ac%e9%92%a5%e5%92%8c%e7%a7%81%e9%92%a5" class="header-anchor"&gt;&lt;/a&gt;1.执行以下命令，创建公钥和私钥
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh-keygen -t rsa
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2执行以下命令将公钥添加到authorized_keys文件中"&gt;&lt;a href="#2%e6%89%a7%e8%a1%8c%e4%bb%a5%e4%b8%8b%e5%91%bd%e4%bb%a4%e5%b0%86%e5%85%ac%e9%92%a5%e6%b7%bb%e5%8a%a0%e5%88%b0authorized_keys%e6%96%87%e4%bb%b6%e4%b8%ad" class="header-anchor"&gt;&lt;/a&gt;2.执行以下命令，将公钥添加到authorized_keys文件中
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd ~
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd .ssh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat id_rsa.pub &amp;gt;&amp;gt; authorized_keys
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;输入如下命令，在环境变量中添加下面的配置
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vi /etc/profile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;然后向里面加入如下的内容
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export HDFS_NAMENODE_USER&lt;span style="color:#f92672"&gt;=&lt;/span&gt;root
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export HDFS_DATANODE_USER&lt;span style="color:#f92672"&gt;=&lt;/span&gt;root
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export HDFS_SECONDARYNAMENODE_USER&lt;span style="color:#f92672"&gt;=&lt;/span&gt;root
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export YARN_RESOURCEMANAGER_USER&lt;span style="color:#f92672"&gt;=&lt;/span&gt;root
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export YARN_NODEMANAGER_USER&lt;span style="color:#f92672"&gt;=&lt;/span&gt;root
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;输入如下命令使改动生效
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;source /etc/profile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id="启动hadoop"&gt;&lt;a href="#%e5%90%af%e5%8a%a8hadoop" class="header-anchor"&gt;&lt;/a&gt;启动Hadoop
&lt;/h1&gt;&lt;h2 id="1执行以下命令初始化namenode"&gt;&lt;a href="#1%e6%89%a7%e8%a1%8c%e4%bb%a5%e4%b8%8b%e5%91%bd%e4%bb%a4%e5%88%9d%e5%a7%8b%e5%8c%96namenode" class="header-anchor"&gt;&lt;/a&gt;1.执行以下命令，初始化namenode
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;hadoop namenode -format
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2依次执行以下命令启动hadoop"&gt;&lt;a href="#2%e4%be%9d%e6%ac%a1%e6%89%a7%e8%a1%8c%e4%bb%a5%e4%b8%8b%e5%91%bd%e4%bb%a4%e5%90%af%e5%8a%a8hadoop" class="header-anchor"&gt;&lt;/a&gt;2.依次执行以下命令，启动Hadoop
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;start-dfs.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;start-yarn.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3启动成功后执行以下命令查看已成功启动的进程"&gt;&lt;a href="#3%e5%90%af%e5%8a%a8%e6%88%90%e5%8a%9f%e5%90%8e%e6%89%a7%e8%a1%8c%e4%bb%a5%e4%b8%8b%e5%91%bd%e4%bb%a4%e6%9f%a5%e7%9c%8b%e5%b7%b2%e6%88%90%e5%8a%9f%e5%90%af%e5%8a%a8%e7%9a%84%e8%bf%9b%e7%a8%8b" class="header-anchor"&gt;&lt;/a&gt;3.启动成功后，执行以下命令，查看已成功启动的进程
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;jps
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/05/image-2.png"&gt;&lt;/p&gt;
&lt;h2 id="4打开浏览器访问如下地址显示如下界面则表示hadoop伪分布式环境搭建完成"&gt;&lt;a href="#4%e6%89%93%e5%bc%80%e6%b5%8f%e8%a7%88%e5%99%a8%e8%ae%bf%e9%97%ae%e5%a6%82%e4%b8%8b%e5%9c%b0%e5%9d%80%e6%98%be%e7%a4%ba%e5%a6%82%e4%b8%8b%e7%95%8c%e9%9d%a2%e5%88%99%e8%a1%a8%e7%a4%bahadoop%e4%bc%aa%e5%88%86%e5%b8%83%e5%bc%8f%e7%8e%af%e5%a2%83%e6%90%ad%e5%bb%ba%e5%ae%8c%e6%88%90" class="header-anchor"&gt;&lt;/a&gt;4.打开浏览器访问如下地址，显示如下界面则表示Hadoop伪分布式环境搭建完成
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Hadoop 版本&lt;/th&gt;
					&lt;th&gt;NameNode Web UI 默认端口&lt;/th&gt;
					&lt;th&gt;ResourceManager Web UI 默认端口&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Hadoop 2.x&lt;/td&gt;
					&lt;td&gt;50070&lt;/td&gt;
					&lt;td&gt;8088&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Hadoop 3.x 及以上&lt;/td&gt;
					&lt;td&gt;9870&lt;/td&gt;
					&lt;td&gt;8088&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/05/image-3-1024x496.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/05/image-4-1024x496.png"&gt;&lt;/p&gt;
&lt;h1 id="参考资料"&gt;&lt;a href="#%e5%8f%82%e8%80%83%e8%b5%84%e6%96%99" class="header-anchor"&gt;&lt;/a&gt;参考资料
&lt;/h1&gt;&lt;p&gt;&lt;a class="link" href="https://developer.aliyun.com/article/1509751" target="_blank" rel="noopener"
 &gt;Linux（阿里云）安装Hadoop(详细教程+避坑)-阿里云开发者社区&lt;/a&gt;&lt;/p&gt;</description></item><item><title>CentOS 安装 Redis</title><link>https://dandansad.com/2025/05/08/centos-%E5%AE%89%E8%A3%85-redis/</link><pubDate>Thu, 08 May 2025 13:35:50 +0800</pubDate><guid>https://dandansad.com/2025/05/08/centos-%E5%AE%89%E8%A3%85-redis/</guid><description>&lt;p&gt;对于 &lt;strong&gt;CentOS&lt;/strong&gt; 系统，如果你希望直接使用带有服务的 Redis 版本，可以选择使用 &lt;strong&gt;Redis 官方的源代码安装&lt;/strong&gt; 或者 &lt;strong&gt;从 EPEL 仓库安装 Redis&lt;/strong&gt;。通常在 CentOS 上，安装后会自动配置 Redis 作为一个 &lt;strong&gt;systemd 服务&lt;/strong&gt;，你可以通过 &lt;code&gt;systemctl&lt;/code&gt; 命令来管理它。&lt;/p&gt;
&lt;p&gt;经过实践，我推荐使用&lt;strong&gt;使用 EPEL 仓库安装 Redis&lt;/strong&gt; ，这样更为方便简单，不会有多余的麻烦。&lt;/p&gt;
&lt;h3 id="使用-epel-仓库安装-redis"&gt;&lt;a href="#%e4%bd%bf%e7%94%a8-epel-%e4%bb%93%e5%ba%93%e5%ae%89%e8%a3%85-redis" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;使用 EPEL 仓库安装 Redis&lt;/strong&gt;
&lt;/h3&gt;&lt;p&gt;在 CentOS 上，Redis 提供了预编译的 RPM 包，你可以通过 &lt;code&gt;yum&lt;/code&gt; 安装它，并且安装后会自动创建一个 Redis 服务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;步骤：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;启用 EPEL 仓库&lt;/strong&gt;：
CentOS 默认不包含 Redis 所需的 EPEL (Extra Packages for Enterprise Linux) 仓库。首先启用 EPEL 仓库： &lt;code&gt;sudo yum install epel-release&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安装 Redis&lt;/strong&gt;：
安装 Redis 包： &lt;code&gt;sudo yum install redis&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;启动 Redis 服务&lt;/strong&gt;：
安装完成后，可以使用 &lt;code&gt;systemctl&lt;/code&gt; 启动 Redis 服务： &lt;code&gt;sudo systemctl start redis&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;设置 Redis 开机自启&lt;/strong&gt;：
如果希望 Redis 在开机时自动启动，可以使用以下命令： &lt;code&gt;sudo systemctl enable redis&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;检查 Redis 服务状态&lt;/strong&gt;：
使用以下命令检查 Redis 服务是否正常运行： &lt;code&gt;sudo systemctl status redis&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如上步骤，安装过程十分简单。所以说，强烈建议直接&lt;strong&gt;使用 EPEL 仓库安装 Redis&lt;/strong&gt; 。&lt;/p&gt;
&lt;p&gt;如果使用源码安装请注意源码编译安装的 Redis 版本，有些&lt;strong&gt;源码编译安装的 Redis 并没有包含 systemd 支持（libsystemd）&lt;/strong&gt;。当你在 &lt;code&gt;redis.service&lt;/code&gt; 中使用 &lt;code&gt;--supervised systemd&lt;/code&gt;时会出现错误，导致服务无法启动。而且源码安装如果想要启动服务，要创建 systemd 服务文件等等操作，比较繁琐。&lt;/p&gt;</description></item><item><title>OpenCloudOS 9.2安装 Anaconda</title><link>https://dandansad.com/2025/04/15/opencloudos-9-2%E5%AE%89%E8%A3%85-anaconda/</link><pubDate>Tue, 15 Apr 2025 00:11:21 +0800</pubDate><guid>https://dandansad.com/2025/04/15/opencloudos-9-2%E5%AE%89%E8%A3%85-anaconda/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;系统版本：
NAME=”OpenCloudOS”
VERSION=”9.2″
ID=”opencloudos”
ID_LIKE=”opencloudos”
VERSION_ID=”9.2″
PLATFORM_ID=”platform:oc9″
PRETTY_NAME=”OpenCloudOS 9.2″
ANSI_COLOR=”0;31″
CPE_NAME=”cpe:/o:opencloudos:opencloudos:9″
HOME_URL=”https://www.opencloudos.org/”
BUG_REPORT_URL=”https://bugs.opencloudos.tech/”&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod +x Miniconda3-latest-Linux-x86_64.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./Miniconda3-latest-Linux-x86_64.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# or&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod +x Anaconda3-2023.03-Linux-x86_64.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./Anaconda3-2023.03-Linux-x86_64.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;source ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;conda --version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>OpenCloudOS 9.2安装MySQL</title><link>https://dandansad.com/2025/04/14/opencloudos-9-2%E5%AE%89%E8%A3%85mysql/</link><pubDate>Mon, 14 Apr 2025 23:49:30 +0800</pubDate><guid>https://dandansad.com/2025/04/14/opencloudos-9-2%E5%AE%89%E8%A3%85mysql/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;系统版本：
NAME=&amp;ldquo;OpenCloudOS&amp;rdquo;
VERSION=&amp;ldquo;9.2&amp;rdquo;
ID=&amp;ldquo;opencloudos&amp;rdquo;
ID_LIKE=&amp;ldquo;opencloudos&amp;rdquo;
VERSION_ID=&amp;ldquo;9.2&amp;rdquo;
PLATFORM_ID=&amp;ldquo;platform:oc9&amp;rdquo;
PRETTY_NAME=&amp;ldquo;OpenCloudOS 9.2&amp;rdquo;
ANSI_COLOR=&amp;ldquo;0;31&amp;rdquo;
CPE_NAME=&amp;ldquo;cpe:/o:opencloudos:opencloudos:9&amp;rdquo;
HOME_URL=&amp;ldquo;&lt;a class="link" href="https://www.opencloudos.org/%22" target="_blank" rel="noopener"
 &gt;https://www.opencloudos.org/"&lt;/a&gt;
BUG_REPORT_URL=&amp;ldquo;&lt;a class="link" href="https://bugs.opencloudos.tech/%22" target="_blank" rel="noopener"
 &gt;https://bugs.opencloudos.tech/"&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo yum install -y mysql80-community-release-el9-1.noarch.rpm
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo yum install -y mysql-server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl enable mysqld
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl start mysqld
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl status mysqld
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql -uroot
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ALTER USER &lt;span style="color:#e6db74"&gt;&amp;#39;root&amp;#39;&lt;/span&gt;@&lt;span style="color:#e6db74"&gt;&amp;#39;localhost&amp;#39;&lt;/span&gt; IDENTIFIED BY &lt;span style="color:#e6db74"&gt;&amp;#39;NewPassw0rd!&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;FLUSH PRIVILEGES;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>对危险操作进行别名配置</title><link>https://dandansad.com/2025/03/23/%E5%AF%B9%E5%8D%B1%E9%99%A9%E6%93%8D%E4%BD%9C%E8%BF%9B%E8%A1%8C%E5%88%AB%E5%90%8D%E9%85%8D%E7%BD%AE/</link><pubDate>Sun, 23 Mar 2025 03:07:51 +0800</pubDate><guid>https://dandansad.com/2025/03/23/%E5%AF%B9%E5%8D%B1%E9%99%A9%E6%93%8D%E4%BD%9C%E8%BF%9B%E8%A1%8C%E5%88%AB%E5%90%8D%E9%85%8D%E7%BD%AE/</guid><description>&lt;p&gt;修改 &lt;code&gt;~/.bashrc&lt;/code&gt; 文件，适当位置加入以下代码：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Alias configuration for dangerous operations&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 危险操作的别名配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias rm&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;rm -i&amp;#39;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 删除文件前确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias mv&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;mv -i&amp;#39;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 移动或覆盖文件前确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias cp&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;cp -i&amp;#39;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 复制文件前确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias rmrf&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;echo &amp;#34;Are you sure you want to run rm -rf? (y/n)&amp;#34; &amp;amp;&amp;amp; read answer &amp;amp;&amp;amp; [ &amp;#34;$answer&amp;#34; = &amp;#34;y&amp;#34; ] &amp;amp;&amp;amp; rm -rf&amp;#39;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 递归删除前确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias overwrite&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;echo &amp;#34;Are you sure you want to overwrite the file? (y/n)&amp;#34; &amp;amp;&amp;amp; read answer &amp;amp;&amp;amp; [ &amp;#34;$answer&amp;#34; = &amp;#34;y&amp;#34; ] &amp;amp;&amp;amp; &amp;gt;&amp;#39;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 覆盖文件前确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias emptyfile&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;echo &amp;#34;Are you sure you want to empty the file? (y/n)&amp;#34; &amp;amp;&amp;amp; read answer &amp;amp;&amp;amp; [ &amp;#34;$answer&amp;#34; = &amp;#34;y&amp;#34; ] &amp;amp;&amp;amp; : &amp;gt;&amp;#39;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 清空文件前确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias exit&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;echo &amp;#34;Are you sure you want to exit? (y/n)&amp;#34; &amp;amp;&amp;amp; read answer &amp;amp;&amp;amp; [ &amp;#34;$answer&amp;#34; = &amp;#34;y&amp;#34; ] &amp;amp;&amp;amp; exit&amp;#39;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 退出终端前确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias reboot&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;echo &amp;#34;Are you sure you want to reboot the system? (y/n)&amp;#34; &amp;amp;&amp;amp; read answer &amp;amp;&amp;amp; [ &amp;#34;$answer&amp;#34; = &amp;#34;y&amp;#34; ] &amp;amp;&amp;amp; reboot&amp;#39;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 重启系统前确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias shutdown&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;echo &amp;#34;Are you sure you want to shutdown the system? (y/n)&amp;#34; &amp;amp;&amp;amp; read answer &amp;amp;&amp;amp; [ &amp;#34;$answer&amp;#34; = &amp;#34;y&amp;#34; ] &amp;amp;&amp;amp; shutdown&amp;#39;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 关机前确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;alias kill9&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;echo &amp;#34;Are you sure you want to kill the process? (y/n)&amp;#34; &amp;amp;&amp;amp; read answer &amp;amp;&amp;amp; [ &amp;#34;$answer&amp;#34; = &amp;#34;y&amp;#34; ] &amp;amp;&amp;amp; kill -9&amp;#39;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 强制终止进程前确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后运行：&lt;code&gt;source ~/.bashrc&lt;/code&gt;&lt;/p&gt;</description></item><item><title>WSL2 Ubuntu ： MySQL 安装记录</title><link>https://dandansad.com/2025/03/17/wsl2-ubuntu--mysql-%E5%AE%89%E8%A3%85%E8%AE%B0%E5%BD%95/</link><pubDate>Mon, 17 Mar 2025 00:58:48 +0800</pubDate><guid>https://dandansad.com/2025/03/17/wsl2-ubuntu--mysql-%E5%AE%89%E8%A3%85%E8%AE%B0%E5%BD%95/</guid><description>&lt;h2 id="版本环境"&gt;&lt;a href="#%e7%89%88%e6%9c%ac%e7%8e%af%e5%a2%83" class="header-anchor"&gt;&lt;/a&gt;版本环境
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;WSL信息：&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-plaintext" data-lang="plaintext"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WSL 版本： 2.3.26.0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;内核版本： 5.15.167.4-1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;WSLg 版本： 1.0.65
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;MSRDC 版本： 1.2.5620
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Direct3D 版本： 1.611.1-81528511
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DXCore 版本： 10.0.26100.1-240331-1435.ge-release
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Windows 版本： 10.0.22631.5039
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Ubuntu版本：&lt;/strong&gt;
Ubuntu 24.04.1 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MySQL版本：&lt;/strong&gt;
Server version: 8.0.41-0ubuntu0.24.04.1 (Ubuntu)&lt;/p&gt;
&lt;h2 id="安装步骤"&gt;&lt;a href="#%e5%ae%89%e8%a3%85%e6%ad%a5%e9%aa%a4" class="header-anchor"&gt;&lt;/a&gt;安装步骤
&lt;/h2&gt;&lt;h3 id="1-更新apt软件包"&gt;&lt;a href="#1-%e6%9b%b4%e6%96%b0apt%e8%bd%af%e4%bb%b6%e5%8c%85" class="header-anchor"&gt;&lt;/a&gt;1. 更新apt软件包
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-安装mysql"&gt;&lt;a href="#2-%e5%ae%89%e8%a3%85mysql" class="header-anchor"&gt;&lt;/a&gt;2. 安装Mysql
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install mysql-server -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-启用mysql服务"&gt;&lt;a href="#3-%e5%90%af%e7%94%a8mysql%e6%9c%8d%e5%8a%a1" class="header-anchor"&gt;&lt;/a&gt;3. 启用Mysql服务
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo service mysql start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;可以使用以下命令检查是否成功启用。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo service mysql status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;成功启用的输出示例，注意看Loaded和Active信息。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;●&lt;/span&gt; mysql&lt;span style="color:#f92672"&gt;.&lt;/span&gt;service &lt;span style="color:#f92672"&gt;-&lt;/span&gt; MySQL Community Server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Loaded: loaded (&lt;span style="color:#f92672"&gt;/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;lib&lt;span style="color:#f92672"&gt;/&lt;/span&gt;systemd&lt;span style="color:#f92672"&gt;/&lt;/span&gt;system&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;.&lt;/span&gt;service; enabled; preset: enabled)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Active: active (running) since Mon &lt;span style="color:#ae81ff"&gt;2025&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;03&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;17&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;00&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;36&lt;/span&gt; CST; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;min &lt;span style="color:#ae81ff"&gt;49&lt;/span&gt;s ago
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Process: &lt;span style="color:#ae81ff"&gt;1513&lt;/span&gt; ExecStartPre&lt;span style="color:#f92672"&gt;=/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;share&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;-&lt;/span&gt;systemd&lt;span style="color:#f92672"&gt;-&lt;/span&gt;start pre (code&lt;span style="color:#f92672"&gt;=&lt;/span&gt;exited, status&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;SUCCESS)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Main PID: &lt;span style="color:#ae81ff"&gt;1521&lt;/span&gt; (mysqld)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Status: &lt;span style="color:#e6db74"&gt;&amp;#34;Server is operational&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Tasks: &lt;span style="color:#ae81ff"&gt;38&lt;/span&gt; (limit: &lt;span style="color:#ae81ff"&gt;9361&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Memory: &lt;span style="color:#ae81ff"&gt;358.7&lt;/span&gt;M ()
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; CGroup: &lt;span style="color:#f92672"&gt;/&lt;/span&gt;system&lt;span style="color:#f92672"&gt;.&lt;/span&gt;slice&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;.&lt;/span&gt;service
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#960050;background-color:#1e0010"&gt;└─&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1521&lt;/span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;sbin&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysqld
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-查看mysql初始密码"&gt;&lt;a href="#4-%e6%9f%a5%e7%9c%8bmysql%e5%88%9d%e5%a7%8b%e5%af%86%e7%a0%81" class="header-anchor"&gt;&lt;/a&gt;4. 查看Mysql初始密码
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo cat /etc/mysql/debian.cnf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;示例输出：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Automatically generated for Debian scripts. DO NOT TOUCH!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[client]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;host &lt;span style="color:#f92672"&gt;=&lt;/span&gt; localhost
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;user &lt;span style="color:#f92672"&gt;=&lt;/span&gt; example
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;password &lt;span style="color:#f92672"&gt;=&lt;/span&gt; example
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;socket &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;run&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysqld&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysqld&lt;span style="color:#f92672"&gt;.&lt;/span&gt;sock
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[mysql_upgrade]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;host &lt;span style="color:#f92672"&gt;=&lt;/span&gt; localhost
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;user &lt;span style="color:#f92672"&gt;=&lt;/span&gt; example
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;password &lt;span style="color:#f92672"&gt;=&lt;/span&gt; example
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;socket &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;var&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;run&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysqld&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysqld&lt;span style="color:#f92672"&gt;.&lt;/span&gt;sock
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;记住用户名（user）和密码（password），等下登录要用。&lt;/p&gt;
&lt;h3 id="5-修改mysql中root用户密码"&gt;&lt;a href="#5-%e4%bf%ae%e6%94%b9mysql%e4%b8%adroot%e7%94%a8%e6%88%b7%e5%af%86%e7%a0%81" class="header-anchor"&gt;&lt;/a&gt;5. 修改Mysql中root用户密码
&lt;/h3&gt;&lt;p&gt;使用你刚刚记住的用户名和密码登录MySQL，输入密码进入MySQL终端&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql -uexample -p
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;按照如下指令顺序输入：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&amp;gt; use mysql;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Reading table information for completion of table and column names
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;You can turn off this feature to get a quicker startup with -A
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Database changed
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&amp;gt; ALTER USER &amp;#39;root&amp;#39;@&amp;#39;localhost&amp;#39; IDENTIFIED WITH mysql_native_password BY &amp;#39;yourpassword&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Query OK, 0 rows affected (0.01 sec)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;到这里MySQL的基本安装步骤就完成了，后续的配置按照正常MySQL配置即可。&lt;/p&gt;</description></item><item><title>防火墙工具引起的问题</title><link>https://dandansad.com/2025/03/10/%E5%85%B3%E4%BA%8E%E9%98%B2%E7%81%AB%E5%A2%99/</link><pubDate>Mon, 10 Mar 2025 01:05:50 +0800</pubDate><guid>https://dandansad.com/2025/03/10/%E5%85%B3%E4%BA%8E%E9%98%B2%E7%81%AB%E5%A2%99/</guid><description>&lt;h1 id="起因"&gt;&lt;a href="#%e8%b5%b7%e5%9b%a0" class="header-anchor"&gt;&lt;/a&gt;起因
&lt;/h1&gt;&lt;p&gt;因为觉得服务器的内存占用太高，但是不知道要清理哪些进程，于是重启了一下服务器。重启服务器之后Xshell连不上了，于是折腾了一个晚上，搞明白了关于防火墙的一些相关知识。&lt;/p&gt;
&lt;p&gt;同时突然想起之前一次使用firewall-cmd开放端口后，服务器也无法远程连接，可能也就是和今天学到的有关吧。&lt;/p&gt;
&lt;h1 id="各种防火墙工具"&gt;&lt;a href="#%e5%90%84%e7%a7%8d%e9%98%b2%e7%81%ab%e5%a2%99%e5%b7%a5%e5%85%b7" class="header-anchor"&gt;&lt;/a&gt;各种防火墙工具
&lt;/h1&gt;&lt;p&gt;在 Linux 系统中，有多种防火墙工具可供选择，每种工具都有其特点和适用场景。以下是常见防火墙工具的梳理，包括它们的异同、开机自启动方法以及常用命令。&lt;/p&gt;
&lt;h2 id="1-iptables"&gt;&lt;a href="#1-iptables" class="header-anchor"&gt;&lt;/a&gt;1. &lt;strong&gt;iptables&lt;/strong&gt;
&lt;/h2&gt;&lt;h3 id="特点"&gt;&lt;a href="#%e7%89%b9%e7%82%b9" class="header-anchor"&gt;&lt;/a&gt;特点
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;底层工具&lt;/strong&gt;：直接操作 Linux 内核的 Netfilter 框架。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;静态规则&lt;/strong&gt;：规则是静态的，修改后需要手动保存。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;灵活性高&lt;/strong&gt;：适合需要精细控制规则的高级用户。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="开机自启动"&gt;&lt;a href="#%e5%bc%80%e6%9c%ba%e8%87%aa%e5%90%af%e5%8a%a8" class="header-anchor"&gt;&lt;/a&gt;开机自启动
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;iptables&lt;/code&gt; 本身不是一个服务，但可以通过以下方法实现开机自启动：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Debian/Ubuntu&lt;/strong&gt;：使用 &lt;code&gt;iptables-persistent&lt;/code&gt; 包。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get install iptables-persistent&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CentOS/RHEL&lt;/strong&gt;：使用 &lt;code&gt;iptables-services&lt;/code&gt; 包。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;sudo yum install iptables-services&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sudo systemctl enable iptables&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sudo systemctl start iptables&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="常用命令"&gt;&lt;a href="#%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4" class="header-anchor"&gt;&lt;/a&gt;常用命令
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;查看规则：&lt;code&gt;sudo iptables -L -v -n&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;添加规则：&lt;code&gt;sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;保存规则：&lt;code&gt;sudo iptables-save &amp;gt; /etc/iptables/rules.v4&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;加载规则：&lt;code&gt;sudo iptables-restore &amp;lt; /etc/iptables/rules.v4&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-firewalld"&gt;&lt;a href="#2-firewalld" class="header-anchor"&gt;&lt;/a&gt;2. &lt;strong&gt;firewalld&lt;/strong&gt;
&lt;/h2&gt;&lt;h3 id="特点-1"&gt;&lt;a href="#%e7%89%b9%e7%82%b9-1" class="header-anchor"&gt;&lt;/a&gt;特点
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态管理&lt;/strong&gt;：支持运行时更新规则，无需重启服务。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;高级抽象&lt;/strong&gt;：使用 zones 和 services 简化配置。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;适合服务器&lt;/strong&gt;：常用于 CentOS、RHEL、Fedora。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="开机自启动-1"&gt;&lt;a href="#%e5%bc%80%e6%9c%ba%e8%87%aa%e5%90%af%e5%8a%a8-1" class="header-anchor"&gt;&lt;/a&gt;开机自启动
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;启用开机自启动：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;sudo systemctl enable firewalld&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo systemctl start firewalld&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="常用命令-1"&gt;&lt;a href="#%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4-1" class="header-anchor"&gt;&lt;/a&gt;常用命令
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;查看状态：&lt;code&gt;sudo firewall-cmd --state&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;查看当前区域规则：&lt;code&gt;sudo firewall-cmd --list-all&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;添加服务：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-service=ssh --permanent&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sudo firewall-cmd --reload&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;添加端口：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;sudo firewall-cmd --zone=public --add-port=80/tcp --permanent&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo firewall-cmd --reload&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-ufwuncomplicated-firewall"&gt;&lt;a href="#3-ufwuncomplicated-firewall" class="header-anchor"&gt;&lt;/a&gt;3. &lt;strong&gt;UFW（Uncomplicated Firewall）&lt;/strong&gt;
&lt;/h2&gt;&lt;h3 id="特点-2"&gt;&lt;a href="#%e7%89%b9%e7%82%b9-2" class="header-anchor"&gt;&lt;/a&gt;特点
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;简单易用&lt;/strong&gt;：适合初学者或需要快速配置的场景。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;基于 iptables&lt;/strong&gt;：底层仍然使用 &lt;code&gt;iptables&lt;/code&gt;。（主要基于 iptables，也在逐步支持 nftables）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;适合桌面&lt;/strong&gt;：常用于 Ubuntu 和基于 Ubuntu 的发行版。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="开机自启动-2"&gt;&lt;a href="#%e5%bc%80%e6%9c%ba%e8%87%aa%e5%90%af%e5%8a%a8-2" class="header-anchor"&gt;&lt;/a&gt;开机自启动
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;启用开机自启动：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;sudo systemctl enable ufw&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo systemctl start ufw&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="常用命令-2"&gt;&lt;a href="#%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4-2" class="header-anchor"&gt;&lt;/a&gt;常用命令
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;查看状态：&lt;code&gt;sudo ufw status&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;启用 UFW：&lt;code&gt;sudo ufw enable&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;允许服务：&lt;code&gt;sudo ufw allow ssh&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;允许端口：&lt;code&gt;sudo ufw allow 80/tcp&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;删除规则：&lt;code&gt;sudo ufw delete allow 80/tcp&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-nftables"&gt;&lt;a href="#4-nftables" class="header-anchor"&gt;&lt;/a&gt;4. &lt;strong&gt;nftables&lt;/strong&gt;
&lt;/h2&gt;&lt;h3 id="特点-3"&gt;&lt;a href="#%e7%89%b9%e7%82%b9-3" class="header-anchor"&gt;&lt;/a&gt;特点
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;iptables 的继任者&lt;/strong&gt;：更高效、更灵活。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;统一框架&lt;/strong&gt;：支持 IPv4 和 IPv6。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;适合高级用户&lt;/strong&gt;：语法更复杂，但功能更强大。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="开机自启动-3"&gt;&lt;a href="#%e5%bc%80%e6%9c%ba%e8%87%aa%e5%90%af%e5%8a%a8-3" class="header-anchor"&gt;&lt;/a&gt;开机自启动
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;启用开机自启动：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;sudo systemctl enable nftables&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo systemctl start nftables&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="常用命令-3"&gt;&lt;a href="#%e5%b8%b8%e7%94%a8%e5%91%bd%e4%bb%a4-3" class="header-anchor"&gt;&lt;/a&gt;常用命令
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;查看规则：&lt;code&gt;sudo nft list ruleset&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;添加规则：&lt;code&gt;sudo nft add rule ip filter input tcp dport 22 accept&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;保存规则：&lt;code&gt;sudo nft list ruleset &amp;gt; /etc/nftables.conf&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;加载规则：&lt;code&gt;sudo nft -f /etc/nftables.conf&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="5-总结对比"&gt;&lt;a href="#5-%e6%80%bb%e7%bb%93%e5%af%b9%e6%af%94" class="header-anchor"&gt;&lt;/a&gt;5. &lt;strong&gt;总结对比&lt;/strong&gt;
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;工具&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
					&lt;th&gt;开机自启动方法&lt;/th&gt;
					&lt;th&gt;适用场景&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;iptables&lt;/td&gt;
					&lt;td&gt;静态规则，灵活性高&lt;/td&gt;
					&lt;td&gt;使用 iptables-persistent 或 iptables-services&lt;/td&gt;
					&lt;td&gt;高级用户、服务器&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;firewalld&lt;/td&gt;
					&lt;td&gt;动态管理，支持 zones 和 services&lt;/td&gt;
					&lt;td&gt;systemctl enable firewalld&lt;/td&gt;
					&lt;td&gt;服务器、云环境&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;UFW&lt;/td&gt;
					&lt;td&gt;简单易用，基于 iptables&lt;/td&gt;
					&lt;td&gt;systemctl enable ufw&lt;/td&gt;
					&lt;td&gt;桌面、简单服务器&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;nftables&lt;/td&gt;
					&lt;td&gt;iptables 的继任者，高效灵活&lt;/td&gt;
					&lt;td&gt;systemctl enable nftables&lt;/td&gt;
					&lt;td&gt;高级用户、现代 Linux 系统&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="6-如何选择"&gt;&lt;a href="#6-%e5%a6%82%e4%bd%95%e9%80%89%e6%8b%a9" class="header-anchor"&gt;&lt;/a&gt;6. &lt;strong&gt;如何选择？&lt;/strong&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;如果你需要精细控制规则，选择 &lt;strong&gt;iptables&lt;/strong&gt; 或 &lt;strong&gt;nftables&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果你是初学者或需要快速配置，选择 &lt;strong&gt;UFW&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果你需要动态管理规则，选择 &lt;strong&gt;firewalld&lt;/strong&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="避免防火墙冲突"&gt;&lt;a href="#%e9%81%bf%e5%85%8d%e9%98%b2%e7%81%ab%e5%a2%99%e5%86%b2%e7%aa%81" class="header-anchor"&gt;&lt;/a&gt;避免防火墙冲突
&lt;/h1&gt;&lt;p&gt;防火墙冲突通常发生在同时使用多个防火墙工具（如 &lt;code&gt;iptables&lt;/code&gt;、&lt;code&gt;firewalld&lt;/code&gt;、&lt;code&gt;UFW&lt;/code&gt; 等）时，因为它们可能会修改相同的底层规则表（如 &lt;code&gt;iptables&lt;/code&gt; 或 &lt;code&gt;nftables&lt;/code&gt;），导致规则覆盖或不一致的行为。以下是避免防火墙冲突的方法：&lt;/p&gt;
&lt;h2 id="1-只使用一个防火墙工具"&gt;&lt;a href="#1-%e5%8f%aa%e4%bd%bf%e7%94%a8%e4%b8%80%e4%b8%aa%e9%98%b2%e7%81%ab%e5%a2%99%e5%b7%a5%e5%85%b7" class="header-anchor"&gt;&lt;/a&gt;1. &lt;strong&gt;只使用一个防火墙工具&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;这是避免冲突的最简单和最有效的方法。选择一个适合你需求的工具，并禁用其他工具。&lt;/p&gt;
&lt;h3 id="选择工具的建议"&gt;&lt;a href="#%e9%80%89%e6%8b%a9%e5%b7%a5%e5%85%b7%e7%9a%84%e5%bb%ba%e8%ae%ae" class="header-anchor"&gt;&lt;/a&gt;选择工具的建议
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;简单易用&lt;/strong&gt;：选择 &lt;strong&gt;UFW&lt;/strong&gt;（适合桌面用户或初学者）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;动态管理&lt;/strong&gt;：选择 &lt;strong&gt;firewalld&lt;/strong&gt;（适合服务器或需要频繁更新规则的场景）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;精细控制&lt;/strong&gt;：选择 &lt;strong&gt;iptables&lt;/strong&gt; 或 &lt;strong&gt;nftables&lt;/strong&gt;（适合高级用户）。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-禁用其他防火墙工具"&gt;&lt;a href="#2-%e7%a6%81%e7%94%a8%e5%85%b6%e4%bb%96%e9%98%b2%e7%81%ab%e5%a2%99%e5%b7%a5%e5%85%b7" class="header-anchor"&gt;&lt;/a&gt;2. &lt;strong&gt;禁用其他防火墙工具&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;如果你决定使用某个工具，请确保禁用其他工具。&lt;/p&gt;
&lt;h3 id="禁用-firewalld"&gt;&lt;a href="#%e7%a6%81%e7%94%a8-firewalld" class="header-anchor"&gt;&lt;/a&gt;禁用 firewalld
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl stop firewalld
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl disable firewalld
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="禁用-ufw"&gt;&lt;a href="#%e7%a6%81%e7%94%a8-ufw" class="header-anchor"&gt;&lt;/a&gt;禁用 UFW
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw disable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="禁用-iptables如果使用-firewalld-或-ufw"&gt;&lt;a href="#%e7%a6%81%e7%94%a8-iptables%e5%a6%82%e6%9e%9c%e4%bd%bf%e7%94%a8-firewalld-%e6%88%96-ufw" class="header-anchor"&gt;&lt;/a&gt;禁用 iptables（如果使用 firewalld 或 UFW）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;如果你使用 &lt;code&gt;firewalld&lt;/code&gt; 或 &lt;code&gt;UFW&lt;/code&gt;，通常不需要手动禁用 &lt;code&gt;iptables&lt;/code&gt;，因为它们会管理 &lt;code&gt;iptables&lt;/code&gt; 规则。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果你直接使用 &lt;code&gt;iptables&lt;/code&gt;，请确保没有其他工具干扰。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-检查当前使用的工具"&gt;&lt;a href="#3-%e6%a3%80%e6%9f%a5%e5%bd%93%e5%89%8d%e4%bd%bf%e7%94%a8%e7%9a%84%e5%b7%a5%e5%85%b7" class="header-anchor"&gt;&lt;/a&gt;3. &lt;strong&gt;检查当前使用的工具&lt;/strong&gt;
&lt;/h2&gt;&lt;h3 id="检查-firewalld-是否运行"&gt;&lt;a href="#%e6%a3%80%e6%9f%a5-firewalld-%e6%98%af%e5%90%a6%e8%bf%90%e8%a1%8c" class="header-anchor"&gt;&lt;/a&gt;检查 firewalld 是否运行
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl status firewalld
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="检查-ufw-是否运行"&gt;&lt;a href="#%e6%a3%80%e6%9f%a5-ufw-%e6%98%af%e5%90%a6%e8%bf%90%e8%a1%8c" class="header-anchor"&gt;&lt;/a&gt;检查 UFW 是否运行
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="检查-iptables-规则"&gt;&lt;a href="#%e6%a3%80%e6%9f%a5-iptables-%e8%a7%84%e5%88%99" class="header-anchor"&gt;&lt;/a&gt;检查 iptables 规则
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo iptables -L -v -n
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="4-避免手动修改底层规则"&gt;&lt;a href="#4-%e9%81%bf%e5%85%8d%e6%89%8b%e5%8a%a8%e4%bf%ae%e6%94%b9%e5%ba%95%e5%b1%82%e8%a7%84%e5%88%99" class="header-anchor"&gt;&lt;/a&gt;4. &lt;strong&gt;避免手动修改底层规则&lt;/strong&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;如果你使用 &lt;code&gt;firewalld&lt;/code&gt; 或 &lt;code&gt;UFW&lt;/code&gt;，尽量避免直接使用 &lt;code&gt;iptables&lt;/code&gt; 或 &lt;code&gt;nftables&lt;/code&gt; 修改规则，因为这可能导致冲突。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果你需要直接操作底层规则，请确保了解工具之间的交互方式。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="5-规则持久化"&gt;&lt;a href="#5-%e8%a7%84%e5%88%99%e6%8c%81%e4%b9%85%e5%8c%96" class="header-anchor"&gt;&lt;/a&gt;5. &lt;strong&gt;规则持久化&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;确保规则在重启后仍然有效，避免因规则丢失而导致的安全问题。&lt;/p&gt;
&lt;h3 id="firewalld"&gt;&lt;a href="#firewalld" class="header-anchor"&gt;&lt;/a&gt;firewalld
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;使用 &lt;code&gt;--permanent&lt;/code&gt; 参数保存规则：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo firewall&lt;span style="color:#f92672"&gt;-&lt;/span&gt;cmd &lt;span style="color:#f92672"&gt;--&lt;/span&gt;zone&lt;span style="color:#f92672"&gt;=&lt;/span&gt;public &lt;span style="color:#f92672"&gt;--&lt;/span&gt;add&lt;span style="color:#f92672"&gt;-&lt;/span&gt;service&lt;span style="color:#f92672"&gt;=&lt;/span&gt;ssh &lt;span style="color:#f92672"&gt;--&lt;/span&gt;permanent
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sudo firewall&lt;span style="color:#f92672"&gt;-&lt;/span&gt;cmd &lt;span style="color:#f92672"&gt;--&lt;/span&gt;reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="ufw"&gt;&lt;a href="#ufw" class="header-anchor"&gt;&lt;/a&gt;UFW
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;启用 UFW 并添加规则：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw enable
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sudo ufw allow ssh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="iptables"&gt;&lt;a href="#iptables" class="header-anchor"&gt;&lt;/a&gt;iptables
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;使用 &lt;code&gt;iptables-save&lt;/code&gt; 保存规则：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo iptables-save &amp;gt; /etc/iptables/rules.v4
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="6-示例从-firewalld-切换到-ufw"&gt;&lt;a href="#6-%e7%a4%ba%e4%be%8b%e4%bb%8e-firewalld-%e5%88%87%e6%8d%a2%e5%88%b0-ufw" class="header-anchor"&gt;&lt;/a&gt;6. &lt;strong&gt;示例：从 firewalld 切换到 UFW&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;如果你决定使用 UFW，可以按照以下步骤切换：&lt;/p&gt;
&lt;h4 id="停止并禁用-firewalld"&gt;&lt;a href="#%e5%81%9c%e6%ad%a2%e5%b9%b6%e7%a6%81%e7%94%a8-firewalld" class="header-anchor"&gt;&lt;/a&gt;停止并禁用 firewalld
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl stop firewalld
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl disable firewalld
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="启用-ufw"&gt;&lt;a href="#%e5%90%af%e7%94%a8-ufw" class="header-anchor"&gt;&lt;/a&gt;启用 UFW
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw enable
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="添加规则"&gt;&lt;a href="#%e6%b7%bb%e5%8a%a0%e8%a7%84%e5%88%99" class="header-anchor"&gt;&lt;/a&gt;添加规则
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw allow ssh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw allow http
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="检查状态"&gt;&lt;a href="#%e6%a3%80%e6%9f%a5%e7%8a%b6%e6%80%81" class="header-anchor"&gt;&lt;/a&gt;检查状态
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ufw status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="7-总结"&gt;&lt;a href="#7-%e6%80%bb%e7%bb%93" class="header-anchor"&gt;&lt;/a&gt;7. &lt;strong&gt;总结&lt;/strong&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;只使用一个防火墙工具，避免同时启用多个工具。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;禁用其他工具，确保规则不会被覆盖。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;确保规则持久化，避免重启后丢失。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="默认防火墙工具"&gt;&lt;a href="#%e9%bb%98%e8%ae%a4%e9%98%b2%e7%81%ab%e5%a2%99%e5%b7%a5%e5%85%b7" class="header-anchor"&gt;&lt;/a&gt;默认防火墙工具
&lt;/h1&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;发行版&lt;/th&gt;
					&lt;th&gt;默认工具&lt;/th&gt;
					&lt;th&gt;特点&lt;/th&gt;
					&lt;th&gt;其他支持工具&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Ubuntu&lt;/td&gt;
					&lt;td&gt;UFW&lt;/td&gt;
					&lt;td&gt;简单易用，适合初学者&lt;/td&gt;
					&lt;td&gt;iptables, firewalld, nftables&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Debian&lt;/td&gt;
					&lt;td&gt;UFW&lt;/td&gt;
					&lt;td&gt;简单易用，适合初学者&lt;/td&gt;
					&lt;td&gt;iptables, firewalld, nftables&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;CentOS&lt;/td&gt;
					&lt;td&gt;firewalld&lt;/td&gt;
					&lt;td&gt;动态管理，支持 zones 和 services&lt;/td&gt;
					&lt;td&gt;iptables, nftables&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;RHEL&lt;/td&gt;
					&lt;td&gt;firewalld&lt;/td&gt;
					&lt;td&gt;动态管理，支持 zones 和 services&lt;/td&gt;
					&lt;td&gt;iptables, nftables&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Fedora&lt;/td&gt;
					&lt;td&gt;firewalld&lt;/td&gt;
					&lt;td&gt;动态管理，支持 zones 和 services&lt;/td&gt;
					&lt;td&gt;iptables, nftables&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Arch Linux&lt;/td&gt;
					&lt;td&gt;无默认工具&lt;/td&gt;
					&lt;td&gt;用户自行选择&lt;/td&gt;
					&lt;td&gt;iptables, nftables, firewalld&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;openSUSE&lt;/td&gt;
					&lt;td&gt;SuSEfirewall2 / firewalld&lt;/td&gt;
					&lt;td&gt;旧版使用 SuSEfirewall2，新版使用 firewalld&lt;/td&gt;
					&lt;td&gt;iptables, nftables&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;理论上，&lt;strong&gt;大多数防火墙工具可以在所有 Linux 发行版上使用&lt;/strong&gt;，但实际使用中可能会受到以下限制：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;发行版的默认工具&lt;/strong&gt;：不同发行版可能有自己的默认防火墙工具。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;软件包管理器的支持&lt;/strong&gt;：某些工具可能需要从源码编译安装，或者依赖特定的库。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;兼容性问题&lt;/strong&gt;：同时使用多个防火墙工具可能会导致规则冲突。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="但是强烈建议就用默认的工具或者使用非默认的工具时一定要禁用其他工具不要混用不同的防火墙工具导致规则覆盖或不一致的行为"&gt;&lt;a href="#%e4%bd%86%e6%98%af%e5%bc%ba%e7%83%88%e5%bb%ba%e8%ae%ae%e5%b0%b1%e7%94%a8%e9%bb%98%e8%ae%a4%e7%9a%84%e5%b7%a5%e5%85%b7%e6%88%96%e8%80%85%e4%bd%bf%e7%94%a8%e9%9d%9e%e9%bb%98%e8%ae%a4%e7%9a%84%e5%b7%a5%e5%85%b7%e6%97%b6%e4%b8%80%e5%ae%9a%e8%a6%81%e7%a6%81%e7%94%a8%e5%85%b6%e4%bb%96%e5%b7%a5%e5%85%b7%e4%b8%8d%e8%a6%81%e6%b7%b7%e7%94%a8%e4%b8%8d%e5%90%8c%e7%9a%84%e9%98%b2%e7%81%ab%e5%a2%99%e5%b7%a5%e5%85%b7%e5%af%bc%e8%87%b4%e8%a7%84%e5%88%99%e8%a6%86%e7%9b%96%e6%88%96%e4%b8%8d%e4%b8%80%e8%87%b4%e7%9a%84%e8%a1%8c%e4%b8%ba" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;但是强烈建议就用默认的工具或者使用非默认的工具时一定要禁用其他工具，不要混用不同的防火墙工具，导致规则覆盖或不一致的行为&lt;/strong&gt;！！！
&lt;/h3&gt;&lt;h1 id="前后端划分"&gt;&lt;a href="#%e5%89%8d%e5%90%8e%e7%ab%af%e5%88%92%e5%88%86" class="header-anchor"&gt;&lt;/a&gt;前后端划分
&lt;/h1&gt;&lt;h2 id="-后端内核级防火墙工具"&gt;&lt;a href="#-%e5%90%8e%e7%ab%af%e5%86%85%e6%a0%b8%e7%ba%a7%e9%98%b2%e7%81%ab%e5%a2%99%e5%b7%a5%e5%85%b7" class="header-anchor"&gt;&lt;/a&gt;✅ 后端（内核级防火墙工具）：
&lt;/h2&gt;&lt;p&gt;这些直接与 Linux 内核的网络过滤框架交互，负责执行具体的包过滤和网络规则：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;iptables&lt;/strong&gt;（旧的内核防火墙后端，广泛使用多年）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;nftables&lt;/strong&gt;（iptables 的继任者，设计更现代，已成为新的内核防火墙框架）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="-前端用户空间防火墙管理工具"&gt;&lt;a href="#-%e5%89%8d%e7%ab%af%e7%94%a8%e6%88%b7%e7%a9%ba%e9%97%b4%e9%98%b2%e7%81%ab%e5%a2%99%e7%ae%a1%e7%90%86%e5%b7%a5%e5%85%b7" class="header-anchor"&gt;&lt;/a&gt;✅ 前端（用户空间防火墙管理工具）：
&lt;/h2&gt;&lt;p&gt;这些工具提供更简化或结构化的接口，帮助用户管理底层防火墙规则（调用 iptables 或 nftables 实际应用规则）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;firewalld&lt;/strong&gt;（基于 zone 和服务概念的高级防火墙管理器，可以使用 iptables 或 nftables 作为后端）&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;UFW（Uncomplicated Firewall）&lt;/strong&gt;（Ubuntu 上常见的防火墙简化工具，主要基于 iptables，也在逐步支持 nftables）&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="总结对照表"&gt;&lt;a href="#%e6%80%bb%e7%bb%93%e5%af%b9%e7%85%a7%e8%a1%a8" class="header-anchor"&gt;&lt;/a&gt;总结对照表：
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;名称&lt;/th&gt;
					&lt;th&gt;类型&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;iptables&lt;/td&gt;
					&lt;td&gt;后端&lt;/td&gt;
					&lt;td&gt;旧版 Linux 防火墙核心组件，低层次规则设置&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;nftables&lt;/td&gt;
					&lt;td&gt;后端&lt;/td&gt;
					&lt;td&gt;新一代内核防火墙系统，功能更强，替代 iptables&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;firewalld&lt;/td&gt;
					&lt;td&gt;前端&lt;/td&gt;
					&lt;td&gt;支持动态规则和区域，默认使用 nftables（新系统）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;UFW&lt;/td&gt;
					&lt;td&gt;前端&lt;/td&gt;
					&lt;td&gt;面向用户简化命令行操作，默认基于 iptables（Ubuntu）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1 id="防火墙和安全组"&gt;&lt;a href="#%e9%98%b2%e7%81%ab%e5%a2%99%e5%92%8c%e5%ae%89%e5%85%a8%e7%bb%84" class="header-anchor"&gt;&lt;/a&gt;防火墙和安全组
&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;防火墙&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;是一种网络安全系统，用于监控和控制进出网络的流量。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;通常部署在单个服务器或网络边界（如路由器、网关）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;基于规则（如 IP 地址、端口、协议）来决定是否允许或拒绝流量。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;安全组&lt;/strong&gt;：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;是一种虚拟防火墙，通常用于云计算环境（如 AWS、阿里云、腾讯云）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;作用于虚拟机实例（如云服务器）或网络接口。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;基于规则（如 IP 地址、端口、协议）来控制进出实例的流量。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;特性&lt;/th&gt;
					&lt;th&gt;防火墙&lt;/th&gt;
					&lt;th&gt;安全组&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;应用场景&lt;/td&gt;
					&lt;td&gt;物理服务器、网络边界&lt;/td&gt;
					&lt;td&gt;云计算环境中的虚拟机实例&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;实现方式&lt;/td&gt;
					&lt;td&gt;软件（如 iptables）或硬件&lt;/td&gt;
					&lt;td&gt;云计算平台的虚拟网络层&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;规则管理&lt;/td&gt;
					&lt;td&gt;静态，需手动保存&lt;/td&gt;
					&lt;td&gt;动态，修改后立即生效&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;部署位置&lt;/td&gt;
					&lt;td&gt;网络边界或单个主机&lt;/td&gt;
					&lt;td&gt;虚拟机实例或网络接口&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;性能&lt;/td&gt;
					&lt;td&gt;取决于硬件或软件实现&lt;/td&gt;
					&lt;td&gt;由云计算平台提供&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;管理复杂度&lt;/td&gt;
					&lt;td&gt;较高，适合高级用户&lt;/td&gt;
					&lt;td&gt;较低，适合普通用户&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;对于云服务器来说，安全组和防火墙相当于双重保障，在使用时如果发现某一端口开放了但是无法使用，就要查看安全组和防火墙是否都开放了该端口。&lt;/p&gt;
&lt;h1 id="相关问题分析"&gt;&lt;a href="#%e7%9b%b8%e5%85%b3%e9%97%ae%e9%a2%98%e5%88%86%e6%9e%90" class="header-anchor"&gt;&lt;/a&gt;相关问题分析
&lt;/h1&gt;&lt;h2 id="多个防火墙工具导致冲突"&gt;&lt;a href="#%e5%a4%9a%e4%b8%aa%e9%98%b2%e7%81%ab%e5%a2%99%e5%b7%a5%e5%85%b7%e5%af%bc%e8%87%b4%e5%86%b2%e7%aa%81" class="header-anchor"&gt;&lt;/a&gt;多个防火墙工具导致冲突
&lt;/h2&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/03/image-6.png"&gt;&lt;/p&gt;
&lt;p&gt;**问题原因：**之前的这一次问题可能就是由于我在Ubuntu上安装了firewall-cmd，然后使用firewall-cmd进行了端口配置，导致其他工具（ufw）的配置被覆盖了，22端口（SSH服务）也被关闭了，所以无法进行远程连接。&lt;/p&gt;
&lt;p&gt;**解决办法：**关闭和禁用其他防火墙服务，只保留一个防火墙工具，避免发生冲突。&lt;/p&gt;
&lt;h2 id="防火墙服务没有开启"&gt;&lt;a href="#%e9%98%b2%e7%81%ab%e5%a2%99%e6%9c%8d%e5%8a%a1%e6%b2%a1%e6%9c%89%e5%bc%80%e5%90%af" class="header-anchor"&gt;&lt;/a&gt;防火墙服务没有开启
&lt;/h2&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/03/image-7.png"&gt;&lt;/p&gt;
&lt;p&gt;**问题原因：**由于防火墙服务（ufw）没有开启，重启之后端口的相关配置没有被加载（22端口未开启），所以无法进行远程连接。&lt;/p&gt;
&lt;p&gt;**解决办法：**开启防火墙服务（开机自启动）。&lt;/p&gt;</description></item><item><title>MySQL 开启和关闭远程访问权限</title><link>https://dandansad.com/2025/03/04/mysql-%E5%BC%80%E5%90%AF%E5%92%8C%E5%85%B3%E9%97%AD%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90/</link><pubDate>Tue, 04 Mar 2025 01:40:37 +0800</pubDate><guid>https://dandansad.com/2025/03/04/mysql-%E5%BC%80%E5%90%AF%E5%92%8C%E5%85%B3%E9%97%AD%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90/</guid><description>&lt;h2 id="正文"&gt;&lt;a href="#%e6%ad%a3%e6%96%87" class="header-anchor"&gt;&lt;/a&gt;正文
&lt;/h2&gt;&lt;p&gt;在 MySQL 中，可以通过操作** mysql 数据库&lt;strong&gt;中的&lt;/strong&gt; user 表**来开启和关闭远程访问权限。&lt;/p&gt;
&lt;p&gt;如下所示：&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/03/image-5.png"&gt;&lt;/p&gt;
&lt;p&gt;MySQL 是通过用户名（user）和客户端ip（host）来唯一确定一个用户。&lt;code&gt;host&lt;/code&gt; 字段指定了允许用户连接的主机，它与 &lt;code&gt;user&lt;/code&gt; 字段一起组成一个用户账户的唯一标识（即 &lt;code&gt;'user'@'host'&lt;/code&gt;）。&lt;/p&gt;
&lt;p&gt;也就是说，可以设置同一个用户名在不同的客户端登陆时的密码不同，登陆后的权限也不同。通过查看mysql.user的表结构也可以看出，host和user是作为联合主键存在的。&lt;/p&gt;
&lt;p&gt;所以说，我们只要修改相应的 host 字段就可以开启和关闭远程访问权限。host字段的常见值如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;localhost&lt;/code&gt;&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;表示用户只能从本地主机（即 MySQL 服务器所在的机器）连接。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;例如：&lt;code&gt;'root'@'localhost'&lt;/code&gt; 表示用户 &lt;code&gt;root&lt;/code&gt; 只能从本地连接。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;%&lt;/code&gt;&lt;/strong&gt;：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;表示用户可以从任意主机连接。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;例如：&lt;code&gt;'user'@'%'&lt;/code&gt; 表示用户 &lt;code&gt;user&lt;/code&gt; 可以从任何 IP 地址或主机名连接。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;具体的 IP 地址或主机名&lt;/strong&gt;：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;表示用户只能从指定的 IP 地址或主机名连接。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;例如：&lt;code&gt;'user'@'192.168.1.100'&lt;/code&gt; 表示用户 &lt;code&gt;user&lt;/code&gt; 只能从 IP 地址 &lt;code&gt;192.168.1.100&lt;/code&gt; 连接。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/strong&gt;：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;表示用户只能从本地主机的环回接口（即 &lt;code&gt;localhost&lt;/code&gt; 的 IP 形式）连接。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;例如：&lt;code&gt;'user'@'127.0.0.1'&lt;/code&gt; 表示用户 &lt;code&gt;user&lt;/code&gt; 只能从 &lt;code&gt;127.0.0.1&lt;/code&gt; 连接。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;在修改 &lt;code&gt;mysql.user&lt;/code&gt; 表后，我们运行 &lt;code&gt;FLUSH PRIVILEGES;&lt;/code&gt; 命令就可以使更改生效。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;更多关于 host 字段的知识如下：&lt;/p&gt;
&lt;h2 id="补充资料"&gt;&lt;a href="#%e8%a1%a5%e5%85%85%e8%b5%84%e6%96%99" class="header-anchor"&gt;&lt;/a&gt;补充资料
&lt;/h2&gt;&lt;p&gt;在 MySQL 中，&lt;code&gt;mysql.user&lt;/code&gt; 表存储了用户账户和权限信息，其中 &lt;code&gt;host&lt;/code&gt; 字段是一个非常重要的字段，它决定了用户可以从哪些主机连接到 MySQL 服务器。&lt;/p&gt;
&lt;h3 id="mysqluser-表中的-host-字段"&gt;&lt;a href="#mysqluser-%e8%a1%a8%e4%b8%ad%e7%9a%84-host-%e5%ad%97%e6%ae%b5" class="header-anchor"&gt;&lt;/a&gt;&lt;code&gt;mysql.user&lt;/code&gt; 表中的 &lt;code&gt;host&lt;/code&gt; 字段
&lt;/h3&gt;&lt;h4 id="1-host"&gt;&lt;a href="#1-host" class="header-anchor"&gt;&lt;/a&gt;1. &lt;strong&gt;&lt;code&gt;host&lt;/code&gt; 字段的作用&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;host&lt;/code&gt; 字段指定了允许用户连接的主机。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;它与 &lt;code&gt;user&lt;/code&gt; 字段一起组成一个用户账户的唯一标识（即 &lt;code&gt;'user'@'host'&lt;/code&gt;）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MySQL 通过 &lt;code&gt;user&lt;/code&gt; 和 &lt;code&gt;host&lt;/code&gt; 字段的组合来判断用户是否有权限连接到服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="2-host"&gt;&lt;a href="#2-host" class="header-anchor"&gt;&lt;/a&gt;2. &lt;strong&gt;&lt;code&gt;host&lt;/code&gt; 字段的常见值&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;localhost&lt;/code&gt;&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;表示用户只能从本地主机（即 MySQL 服务器所在的机器）连接。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;例如：&lt;code&gt;'root'@'localhost'&lt;/code&gt; 表示用户 &lt;code&gt;root&lt;/code&gt; 只能从本地连接。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;%&lt;/code&gt;&lt;/strong&gt;：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;表示用户可以从任意主机连接。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;例如：&lt;code&gt;'user'@'%'&lt;/code&gt; 表示用户 &lt;code&gt;user&lt;/code&gt; 可以从任何 IP 地址或主机名连接。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;具体的 IP 地址或主机名&lt;/strong&gt;：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;表示用户只能从指定的 IP 地址或主机名连接。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;例如：&lt;code&gt;'user'@'192.168.1.100'&lt;/code&gt; 表示用户 &lt;code&gt;user&lt;/code&gt; 只能从 IP 地址 &lt;code&gt;192.168.1.100&lt;/code&gt; 连接。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/strong&gt;：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;表示用户只能从本地主机的环回接口（即 &lt;code&gt;localhost&lt;/code&gt; 的 IP 形式）连接。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;例如：&lt;code&gt;'user'@'127.0.0.1'&lt;/code&gt; 表示用户 &lt;code&gt;user&lt;/code&gt; 只能从 &lt;code&gt;127.0.0.1&lt;/code&gt; 连接。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="3-host"&gt;&lt;a href="#3-host" class="header-anchor"&gt;&lt;/a&gt;3. &lt;strong&gt;&lt;code&gt;host&lt;/code&gt; 字段的匹配规则&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;MySQL 在验证用户连接时，会按照以下顺序匹配 &lt;code&gt;host&lt;/code&gt; 字段：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;精确匹配（例如 &lt;code&gt;'user'@'192.168.1.100'&lt;/code&gt;）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;通配符匹配（例如 &lt;code&gt;'user'@'%'&lt;/code&gt;）。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果找不到匹配的记录，连接会被拒绝。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;注意&lt;/strong&gt;：&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果有多个匹配的记录，MySQL 会选择最具体的一个。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;例如，&lt;code&gt;'user'@'192.168.1.100'&lt;/code&gt; 比 &lt;code&gt;'user'@'%'&lt;/code&gt; 更具体，因此会优先匹配。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="4-修改"&gt;&lt;a href="#4-%e4%bf%ae%e6%94%b9" class="header-anchor"&gt;&lt;/a&gt;4. &lt;strong&gt;修改 &lt;code&gt;host&lt;/code&gt; 字段&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;如果需要修改用户的 &lt;code&gt;host&lt;/code&gt; 字段，可以使用以下 SQL 语句：&lt;/p&gt;
&lt;h5 id="修改用户的-host-值"&gt;&lt;a href="#%e4%bf%ae%e6%94%b9%e7%94%a8%e6%88%b7%e7%9a%84-host-%e5%80%bc" class="header-anchor"&gt;&lt;/a&gt;修改用户的 &lt;code&gt;host&lt;/code&gt; 值
&lt;/h5&gt;&lt;p&gt;UPDATE mysql.user SET host = &amp;lsquo;新的host值&amp;rsquo; WHERE user = &amp;lsquo;用户名&amp;rsquo; AND host = &amp;lsquo;旧的host值&amp;rsquo;;
FLUSH PRIVILEGES;&lt;/p&gt;
&lt;p&gt;例如，将用户 &lt;code&gt;user&lt;/code&gt; 的 &lt;code&gt;host&lt;/code&gt; 从 &lt;code&gt;localhost&lt;/code&gt; 改为 &lt;code&gt;%&lt;/code&gt;：&lt;/p&gt;
&lt;p&gt;UPDATE mysql.user SET host = &amp;lsquo;%&amp;rsquo; WHERE user = &amp;lsquo;user&amp;rsquo; AND host = &amp;rsquo;localhost&amp;rsquo;;
FLUSH PRIVILEGES;&lt;/p&gt;
&lt;h5 id="创建新用户时指定-host"&gt;&lt;a href="#%e5%88%9b%e5%bb%ba%e6%96%b0%e7%94%a8%e6%88%b7%e6%97%b6%e6%8c%87%e5%ae%9a-host" class="header-anchor"&gt;&lt;/a&gt;创建新用户时指定 &lt;code&gt;host&lt;/code&gt;
&lt;/h5&gt;&lt;p&gt;CREATE USER &amp;lsquo;用户名&amp;rsquo;@&amp;lsquo;host值&amp;rsquo; IDENTIFIED BY &amp;lsquo;密码&amp;rsquo;;&lt;/p&gt;
&lt;p&gt;例如，创建一个用户 &lt;code&gt;user&lt;/code&gt;，允许从任意主机连接：&lt;/p&gt;
&lt;p&gt;CREATE USER &amp;lsquo;user&amp;rsquo;@&amp;rsquo;%&amp;rsquo; IDENTIFIED BY &amp;lsquo;password&amp;rsquo;;&lt;/p&gt;
&lt;h4 id="5-查看"&gt;&lt;a href="#5-%e6%9f%a5%e7%9c%8b" class="header-anchor"&gt;&lt;/a&gt;5. &lt;strong&gt;查看 &lt;code&gt;mysql.user&lt;/code&gt; 表中的 &lt;code&gt;host&lt;/code&gt; 字段&lt;/strong&gt;
&lt;/h4&gt;&lt;p&gt;可以运行以下 SQL 语句查看 &lt;code&gt;mysql.user&lt;/code&gt; 表中的 &lt;code&gt;host&lt;/code&gt; 字段：&lt;/p&gt;
&lt;p&gt;SELECT user, host FROM mysql.user;&lt;/p&gt;
&lt;p&gt;输出示例：&lt;/p&gt;
&lt;p&gt;+&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;+&amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash;+
| user | host |
+&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;+&amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash;+
| root | localhost |
| user | % |
| testuser | 192.168.1.100 |
+&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;+&amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash;+&lt;/p&gt;
&lt;h4 id="6-注意事项"&gt;&lt;a href="#6-%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9" class="header-anchor"&gt;&lt;/a&gt;6. &lt;strong&gt;注意事项&lt;/strong&gt;
&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;安全性&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;使用 &lt;code&gt;%&lt;/code&gt; 允许从任意主机连接时，可能会增加安全风险。建议仅在必要时使用，并确保设置强密码。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;权限刷新&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;修改 &lt;code&gt;mysql.user&lt;/code&gt; 表后，必须运行 &lt;code&gt;FLUSH PRIVILEGES;&lt;/code&gt; 以使更改生效。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;备份&lt;/strong&gt;：&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在修改 &lt;code&gt;mysql.user&lt;/code&gt; 表之前，建议备份数据，以防止误操作。&lt;/p&gt;
&lt;h3 id="总结"&gt;&lt;a href="#%e6%80%bb%e7%bb%93" class="header-anchor"&gt;&lt;/a&gt;总结
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;mysql.user&lt;/code&gt; 表中的 &lt;code&gt;host&lt;/code&gt; 字段决定了用户可以从哪些主机连接到 MySQL 服务器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;常见的 &lt;code&gt;host&lt;/code&gt; 值包括 &lt;code&gt;localhost&lt;/code&gt;、&lt;code&gt;%&lt;/code&gt;、具体的 IP 地址或主机名。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;可以通过 &lt;code&gt;UPDATE&lt;/code&gt; 语句修改 &lt;code&gt;host&lt;/code&gt; 字段，或通过 &lt;code&gt;CREATE USER&lt;/code&gt; 创建用户时指定 &lt;code&gt;host&lt;/code&gt;。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;修改后需要运行 &lt;code&gt;FLUSH PRIVILEGES;&lt;/code&gt; 以使更改生效。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你有其他问题或需要进一步帮助，请告诉我！&lt;/p&gt;</description></item><item><title>Linux 安装 MySQL 8.0.26</title><link>https://dandansad.com/2025/03/03/linux-%E5%AE%89%E8%A3%85-mysql-8-0-26/</link><pubDate>Mon, 03 Mar 2025 00:01:59 +0800</pubDate><guid>https://dandansad.com/2025/03/03/linux-%E5%AE%89%E8%A3%85-mysql-8-0-26/</guid><description>
 &lt;blockquote&gt;
 &lt;p&gt;原文链接：&lt;a class="link" href="https://www.cnblogs.com/MrYoodb/p/15811199.html" target="_blank" rel="noopener"
 &gt;https://www.cnblogs.com/MrYoodb/p/15811199.html&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="1mysql-8026-下载"&gt;&lt;a href="#1mysql-8026-%e4%b8%8b%e8%bd%bd" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;1、MySQL 8.0.26 下载&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;官方网站下载 MySQL 8.0.26 安装包，下载地址：&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://downloads.mysql.com/archives/community" target="_blank" rel="noopener"
 &gt;https://downloads.mysql.com/archives/community&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;需要注意：Linux操作系统是32位还是64位，本案例采用Linux 64位操作系统进行讲解，通过wget命令下载安装包。&lt;/p&gt;
&lt;p&gt;使用df -lh命令查看，磁盘大小，尽量安装在比较大的磁盘下，防止空间不够使用。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos home]# df -lh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Filesystem Size Used Avail Use% Mounted on
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;devtmpfs 3.9G 0 3.9G 0% /dev
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tmpfs 3.9G 24K 3.9G 1% /dev/shm
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tmpfs 3.9G 604K 3.9G 1% /run
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/dev/vda1 50G 3.8G 44G 9% /
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tmpfs 783M 0 783M 0% /run/user/0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;通过上述命令可以看出根目录空间比较充足，那么就把安装包下载到home目录了，执行wget命令。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root&lt;span style="color:#960050;background-color:#1e0010"&gt;@&lt;/span&gt;VM&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;centos home]&lt;span style="color:#75715e"&gt;# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;　　&lt;/p&gt;
&lt;h2 id="2解压缩文件"&gt;&lt;a href="#2%e8%a7%a3%e5%8e%8b%e7%bc%a9%e6%96%87%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;2、解压缩文件&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;解压 mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz 文件，使用&lt;code&gt;tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz&lt;/code&gt; 命令。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos home]# tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql-8.0.26-linux-glibc2.12-x86_64/bin/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql-8.0.26-linux-glibc2.12-x86_64/bin/myisam_ftdump
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql-8.0.26-linux-glibc2.12-x86_64/bin/myisamchk
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql-8.0.26-linux-glibc2.12-x86_64/bin/myisamlog
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql-8.0.26-linux-glibc2.12-x86_64/bin/myisampack
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql-8.0.26-linux-glibc2.12-x86_64/bin/mysql
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;....
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql-8.0.26-linux-glibc2.12-x86_64/share/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql-8.0.26-linux-glibc2.12-x86_64/share/install_rewriter.sql
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql-8.0.26-linux-glibc2.12-x86_64/share/uninstall_rewriter.sql
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3移动文件"&gt;&lt;a href="#3%e7%a7%bb%e5%8a%a8%e6%96%87%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;3、移动文件&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;将压缩包移动到usr/local目录下，并重命名文件为mysql，使用&lt;code&gt;mv /home/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql&lt;/code&gt;命令。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos home]# mv mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos home]# cd /usr/local/mysql/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]# ls
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bin docs include lib LICENSE man README share support-files
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]# cd ..
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos local]# ls
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bin etc games include lib lib64 libexec mysql qcloud sbin share src yd.socket.server
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos local]#
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;　　&lt;/p&gt;
&lt;h2 id="4创建数据存放目录"&gt;&lt;a href="#4%e5%88%9b%e5%bb%ba%e6%95%b0%e6%8d%ae%e5%ad%98%e6%94%be%e7%9b%ae%e5%bd%95" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;4、创建数据存放目录&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;在mysql根目录下新建一个目录data，主要用于存放数据库数据文件，使用&lt;code&gt;mkdir data&lt;/code&gt;命令。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos local]# cd mysql/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]# mkdir data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]# ls
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;bin data docs include lib LICENSE man README share support-files
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]#
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="5创建用户组和用户"&gt;&lt;a href="#5%e5%88%9b%e5%bb%ba%e7%94%a8%e6%88%b7%e7%bb%84%e5%92%8c%e7%94%a8%e6%88%b7" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;5、创建用户组和用户&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;创建mysql用户组和mysql用户，使用&lt;code&gt;groupadd mysql&lt;/code&gt;和&lt;code&gt;useradd -g mysql mysql&lt;/code&gt;命令。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]# groupadd mysql
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]# useradd -g mysql mysql
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="6改变mysql目录权限"&gt;&lt;a href="#6%e6%94%b9%e5%8f%98mysql%e7%9b%ae%e5%bd%95%e6%9d%83%e9%99%90" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;6、改变mysql目录权限&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;修改mysql目录权限，可以使用&lt;code&gt;chown -R mysql.mysql /usr/local/mysql/&lt;/code&gt;命令。&lt;/p&gt;
&lt;p&gt;修改mysql目录权限也可以通过&lt;code&gt;chown -R mysql .&lt;/code&gt;和&lt;code&gt;chgrp -R mysql .&lt;/code&gt;两个命令。注意：这两个命令都需要执行的，还有那个点不要忽视掉。&lt;/p&gt;
&lt;h2 id="7数据库初始化"&gt;&lt;a href="#7%e6%95%b0%e6%8d%ae%e5%ba%93%e5%88%9d%e5%a7%8b%e5%8c%96" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;7、数据库初始化&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;数据库初始化&lt;code&gt;./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize&lt;/code&gt;命令，得到临时密码。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-2-centos mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022-01-16T07:32:18.729960Z 0 [Warning] [MY-011070] [Server] &amp;#39;Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it&amp;#39; is deprecated and will be removed in a future release.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022-01-16T07:32:18.729960Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.26) initializing of server in progress as process 7691
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022-01-16T07:32:18.740975Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022-01-16T07:32:19.800287Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022-01-16T07:32:21.721672Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022-01-16T07:32:21.722106Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;2022-01-16T07:32:21.787669Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: j-6lA2aXv=Pz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;需要注意：记录一下mysql数据库的临时密码 j-6lA2aXv=Pz，后面安装步骤是需要使用的，否则需要重新安装数据库或其他方式获取密码，此处问题省略。&lt;/p&gt;
&lt;h2 id="8修改mycnf文件"&gt;&lt;a href="#8%e4%bf%ae%e6%94%b9mycnf%e6%96%87%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;8、修改my.cnf文件&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;修改my.cnf文件，使用&lt;code&gt;vi /etc/my.cnf&lt;/code&gt;命令。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[mysqld]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; basedir &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; datadir &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; socket &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;.&lt;/span&gt;sock
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; character&lt;span style="color:#f92672"&gt;-&lt;/span&gt;set&lt;span style="color:#f92672"&gt;-&lt;/span&gt;server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;utf8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; port &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;3306&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sql_mode&lt;span style="color:#f92672"&gt;=&lt;/span&gt;NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; [client]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; socket &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;.&lt;/span&gt;sock
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; default&lt;span style="color:#f92672"&gt;-&lt;/span&gt;character&lt;span style="color:#f92672"&gt;-&lt;/span&gt;set&lt;span style="color:#f92672"&gt;=&lt;/span&gt;utf8
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#[mysqld]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#datadir=/var/lib/mysql&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#socket=/var/lib/mysql/mysql.sock&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Disabling symbolic-links is recommended to prevent assorted security risks&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#symbolic-links=0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Settings user and group are ignored when systemd is used.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# If you need to run mysqld under a different user or group,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# customize your systemd unit file for mariadb according to the&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# instructions in http://fedoraproject.org/wiki/Systemd&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#[mysqld_safe]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#log-error=/var/log/mariadb/mariadb.log&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#pid-file=/var/run/mariadb/mariadb.pid&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# include all files from the config directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!includedir /etc/my.cnf.d&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;直接将上述配置内容复制到my.cnf文件中，或者自行修改，然后执行&lt;code&gt;:wq&lt;/code&gt;命令，保存并退出。&lt;/p&gt;
&lt;h2 id="9创建mysql服务"&gt;&lt;a href="#9%e5%88%9b%e5%bb%bamysql%e6%9c%8d%e5%8a%a1" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;9、创建mysql服务&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;1）将mysql.server启动文件复制到/etc/init.d目录，使用&lt;code&gt;cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld&lt;/code&gt;命令。&lt;/p&gt;
&lt;p&gt;2）赋予权限，使用&lt;code&gt;chmod +x /etc/rc.d/init.d/mysqld&lt;/code&gt;命令；&lt;/p&gt;
&lt;p&gt;3）使用&lt;code&gt;chkconfig --add mysqld&lt;/code&gt;创建mysql服务。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]# chmod +x /etc/rc.d/init.d/mysqld
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]# chkconfig --add mysqld
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;检查mysql服务是否生效，使用&lt;code&gt;chkconfig --list mysqld&lt;/code&gt;命令。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos mysql]# chkconfig --list mysqld
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Note: This output shows SysV services only and does not include native
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; systemd services. SysV configuration data might be overridden by native
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; systemd configuration.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; If you want to list systemd services use &amp;#39;systemctl list-unit-files&amp;#39;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; To see services enabled on particular target use
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;#39;systemctl list-dependencies [target]&amp;#39;.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;　　&lt;/p&gt;
&lt;h2 id="10配置全局环境变量"&gt;&lt;a href="#10%e9%85%8d%e7%bd%ae%e5%85%a8%e5%b1%80%e7%8e%af%e5%a2%83%e5%8f%98%e9%87%8f" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;10、配置全局环境变量&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;编辑/etc/profile文件，使用&lt;code&gt;vi /etc/profile&lt;/code&gt;命令，在profile文件中添加如下两行配置，使用&lt;code&gt;:wq&lt;/code&gt;命令保存后退出。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;export&lt;/span&gt; PATH&lt;span style="color:#f92672"&gt;=$&lt;/span&gt;PATH:&lt;span style="color:#f92672"&gt;/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;bin:&lt;span style="color:#f92672"&gt;/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;lib
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;export&lt;/span&gt; PATH
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;设置环境变量立即生效使用&lt;code&gt;source /etc/profile&lt;/code&gt;命令。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos ~]# source /etc/profile
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos ~]#
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;　　&lt;/p&gt;
&lt;h2 id="11启动mysql服务"&gt;&lt;a href="#11%e5%90%af%e5%8a%a8mysql%e6%9c%8d%e5%8a%a1" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;11、启动mysql服务&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;启动mysql服务，使用&lt;code&gt;service mysql start&lt;/code&gt;命令；使用&lt;code&gt;service mysql status&lt;/code&gt;命令，查看是否启动成功。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root&lt;span style="color:#960050;background-color:#1e0010"&gt;@&lt;/span&gt;VM&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;centos &lt;span style="color:#f92672"&gt;~&lt;/span&gt;]&lt;span style="color:#75715e"&gt;# service mysql start&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Redirecting to &lt;span style="color:#f92672"&gt;/&lt;/span&gt;bin&lt;span style="color:#f92672"&gt;/&lt;/span&gt;systemctl start mysql&lt;span style="color:#f92672"&gt;.&lt;/span&gt;service
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root&lt;span style="color:#960050;background-color:#1e0010"&gt;@&lt;/span&gt;VM&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;centos &lt;span style="color:#f92672"&gt;~&lt;/span&gt;]&lt;span style="color:#75715e"&gt;# service mysql status&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Redirecting to &lt;span style="color:#f92672"&gt;/&lt;/span&gt;bin&lt;span style="color:#f92672"&gt;/&lt;/span&gt;systemctl status mysql&lt;span style="color:#f92672"&gt;.&lt;/span&gt;service
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#960050;background-color:#1e0010"&gt;●&lt;/span&gt; mysqld&lt;span style="color:#f92672"&gt;.&lt;/span&gt;service &lt;span style="color:#f92672"&gt;-&lt;/span&gt; LSB: start &lt;span style="color:#f92672"&gt;and&lt;/span&gt; stop MySQL
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Loaded: loaded (&lt;span style="color:#f92672"&gt;/&lt;/span&gt;etc&lt;span style="color:#f92672"&gt;/&lt;/span&gt;rc&lt;span style="color:#f92672"&gt;.&lt;/span&gt;d&lt;span style="color:#f92672"&gt;/&lt;/span&gt;init&lt;span style="color:#f92672"&gt;.&lt;/span&gt;d&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysqld; bad; vendor preset: disabled)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Active: active (running) since Sun &lt;span style="color:#ae81ff"&gt;2022&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;01&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;16&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;17&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;17&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;55&lt;/span&gt; CST; &lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;s ago
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Docs: man:systemd&lt;span style="color:#f92672"&gt;-&lt;/span&gt;sysv&lt;span style="color:#f92672"&gt;-&lt;/span&gt;generator(&lt;span style="color:#ae81ff"&gt;8&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Process: &lt;span style="color:#ae81ff"&gt;27231&lt;/span&gt; ExecStart&lt;span style="color:#f92672"&gt;=/&lt;/span&gt;etc&lt;span style="color:#f92672"&gt;/&lt;/span&gt;rc&lt;span style="color:#f92672"&gt;.&lt;/span&gt;d&lt;span style="color:#f92672"&gt;/&lt;/span&gt;init&lt;span style="color:#f92672"&gt;.&lt;/span&gt;d&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysqld start (code&lt;span style="color:#f92672"&gt;=&lt;/span&gt;exited, status&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;/&lt;/span&gt;SUCCESS)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; CGroup: &lt;span style="color:#f92672"&gt;/&lt;/span&gt;system&lt;span style="color:#f92672"&gt;.&lt;/span&gt;slice&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysqld&lt;span style="color:#f92672"&gt;.&lt;/span&gt;service
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#960050;background-color:#1e0010"&gt;├─&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;27242&lt;/span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;bin&lt;span style="color:#f92672"&gt;/&lt;/span&gt;sh &lt;span style="color:#f92672"&gt;/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;bin&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysqld_safe &lt;span style="color:#f92672"&gt;--&lt;/span&gt;datadir&lt;span style="color:#f92672"&gt;=/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;data &lt;span style="color:#f92672"&gt;--&lt;/span&gt;pid&lt;span style="color:#f92672"&gt;-&lt;/span&gt;file&lt;span style="color:#f92672"&gt;=/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;data&lt;span style="color:#f92672"&gt;/&lt;/span&gt;VM&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;centos&lt;span style="color:#f92672"&gt;.&lt;/span&gt;pid
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#960050;background-color:#1e0010"&gt;└─&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;27408&lt;/span&gt; &lt;span style="color:#f92672"&gt;/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;bin&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysqld &lt;span style="color:#f92672"&gt;--&lt;/span&gt;basedir&lt;span style="color:#f92672"&gt;=/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql &lt;span style="color:#f92672"&gt;--&lt;/span&gt;datadir&lt;span style="color:#f92672"&gt;=/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;data &lt;span style="color:#f92672"&gt;--&lt;/span&gt;plugin&lt;span style="color:#f92672"&gt;-&lt;/span&gt;dir&lt;span style="color:#f92672"&gt;=/&lt;/span&gt;usr&lt;span style="color:#f92672"&gt;/&lt;/span&gt;local&lt;span style="color:#f92672"&gt;/&lt;/span&gt;mysql&lt;span style="color:#f92672"&gt;/&lt;/span&gt;lib&lt;span style="color:#f92672"&gt;/&lt;/span&gt;plugin &lt;span style="color:#f92672"&gt;--&lt;/span&gt;user&lt;span style="color:#f92672"&gt;=&lt;/span&gt;mysql &lt;span style="color:#f92672"&gt;--&lt;/span&gt;log&lt;span style="color:#f92672"&gt;-&lt;/span&gt;error&lt;span style="color:#f92672"&gt;=&lt;/span&gt;VM&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;cent&lt;span style="color:#f92672"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Jan &lt;span style="color:#ae81ff"&gt;16&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;17&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;17&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;54&lt;/span&gt; VM&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;centos systemd[&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;]: Starting LSB: start &lt;span style="color:#f92672"&gt;and&lt;/span&gt; stop MySQL&lt;span style="color:#f92672"&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Jan &lt;span style="color:#ae81ff"&gt;16&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;17&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;17&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;54&lt;/span&gt; VM&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;centos mysqld[&lt;span style="color:#ae81ff"&gt;27231&lt;/span&gt;]: Starting MySQL&lt;span style="color:#f92672"&gt;.&lt;/span&gt;Logging to &lt;span style="color:#e6db74"&gt;&amp;#39;/usr/local/mysql/data/VM-0-4-centos.err&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Jan &lt;span style="color:#ae81ff"&gt;16&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;17&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;17&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;55&lt;/span&gt; VM&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;centos mysqld[&lt;span style="color:#ae81ff"&gt;27231&lt;/span&gt;]: SUCCESS&lt;span style="color:#f92672"&gt;!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Jan &lt;span style="color:#ae81ff"&gt;16&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;17&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;17&lt;/span&gt;:&lt;span style="color:#ae81ff"&gt;55&lt;/span&gt; VM&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;4&lt;/span&gt;&lt;span style="color:#f92672"&gt;-&lt;/span&gt;centos systemd[&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;]: Started LSB: start &lt;span style="color:#f92672"&gt;and&lt;/span&gt; stop MySQL&lt;span style="color:#f92672"&gt;.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;　　&lt;/p&gt;
&lt;h2 id="12登录mysql修改密码"&gt;&lt;a href="#12%e7%99%bb%e5%bd%95mysql%e4%bf%ae%e6%94%b9%e5%af%86%e7%a0%81" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;12、登录mysql修改密码&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;登录mysql数据库，使用&lt;code&gt;mysql -uroot -p&lt;/code&gt;密码命令，临时密码是j-6lA2aXv=Pz。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;[root@VM-0-4-centos ~]# mysql -uroot -p
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Enter password:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Welcome to the MySQL monitor. Commands end with ; or \g.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Your MySQL connection id is 13
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Server version: 8.0.26
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Copyright (c) 2000, 2021, Oracle and/or its affiliates.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Oracle is a registered trademark of Oracle Corporation and/or its
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;affiliates. Other names may be trademarks of their respective
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;owners.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Type &amp;#39;help;&amp;#39; or &amp;#39;\h&amp;#39; for help. Type &amp;#39;\c&amp;#39; to clear the current input statement.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;修改mysql临时密码，也就是将第七步数据库初始化生成的临时密码修改成自己需要设置的密码。&lt;/p&gt;
&lt;p&gt;修改mysql数据库密码，使用&lt;code&gt;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';&lt;/code&gt;命令。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&amp;gt; ALTER USER &amp;#39;root&amp;#39;@&amp;#39;localhost&amp;#39; IDENTIFIED WITH mysql_native_password BY &amp;#39;123456&amp;#39;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Query OK, 0 rows affected (0.01 sec)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;注意：此处123456修改为自己的需要密码即可。&lt;/p&gt;
&lt;h2 id="13设置mysql远程登录"&gt;&lt;a href="#13%e8%ae%be%e7%bd%aemysql%e8%bf%9c%e7%a8%8b%e7%99%bb%e5%bd%95" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;13、设置mysql远程登录&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;1）切换数据库，使用&lt;code&gt;use mysql;&lt;/code&gt;命令。&lt;/p&gt;
&lt;p&gt;2）修改mysql库中host值，使用&lt;code&gt;update user set host='%' where user='root' limit 1;&lt;/code&gt;命令。&lt;/p&gt;
&lt;p&gt;3）刷新mysql权限，使用&lt;code&gt;flush privileges;&lt;/code&gt;命令。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&amp;gt; use mysql;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Reading table information for completion of table and column names
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;You can turn off this feature to get a quicker startup with -A
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Database changed
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&amp;gt; update user set host=&amp;#39;%&amp;#39; where user=&amp;#39;root&amp;#39; limit 1;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Query OK, 1 row affected (0.01 sec)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Rows matched: 1 Changed: 1 Warnings: 0
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&amp;gt; flush privileges;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Query OK, 0 rows affected (0.00 sec)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mysql&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;　　&lt;/p&gt;
&lt;h2 id="14mysql客户端连接数据库"&gt;&lt;a href="#14mysql%e5%ae%a2%e6%88%b7%e7%ab%af%e8%bf%9e%e6%8e%a5%e6%95%b0%e6%8d%ae%e5%ba%93" class="header-anchor"&gt;&lt;/a&gt;&lt;strong&gt;14、mysql客户端连接数据库&lt;/strong&gt;
&lt;/h2&gt;&lt;p&gt;客户端连接mysql数据库，连接名（自定义名称）、主机（IP）、端口号及用户名和密码，点击测试连接按钮，显示连接成功即可。&lt;/p&gt;
&lt;p&gt;注意：若提示无法连接，需要测试服务器3306端口是否开放。若服务器端可以通过查看防火墙情况，此时方式验证省略；而从客户端测试可以使用“telnet IP 端口号”命令。&lt;/p&gt;</description></item><item><title>修改 Linux 终端命令行提示符颜色</title><link>https://dandansad.com/2025/02/26/%E4%BF%AE%E6%94%B9-linux-%E7%BB%88%E7%AB%AF%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%8F%90%E7%A4%BA%E7%AC%A6%E9%A2%9C%E8%89%B2/</link><pubDate>Wed, 26 Feb 2025 02:14:45 +0800</pubDate><guid>https://dandansad.com/2025/02/26/%E4%BF%AE%E6%94%B9-linux-%E7%BB%88%E7%AB%AF%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%8F%90%E7%A4%BA%E7%AC%A6%E9%A2%9C%E8%89%B2/</guid><description>&lt;h2 id="临时设置-ps1"&gt;&lt;a href="#%e4%b8%b4%e6%97%b6%e8%ae%be%e7%bd%ae-ps1" class="header-anchor"&gt;&lt;/a&gt;临时设置 &lt;code&gt;PS1&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;PS（Prompt Sign）命令提示符，PS1是Linux终端用户的一个环境变量，用来定义命令行提示符的参数。在设定PS1环境变量时，需要用到预设的一些参数来设定PS1。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;查看当前PS1的设置：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;echo $PS1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;设置PS1示例：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PS1='[\033[01;32m]\u@\h[\033[00m]\n[\033[01;34m]\w[\033[00m]\$'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS1的常用参数以及含义：&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\d ：代表日期，格式为weekday month date，例如：&amp;#34;Mon Aug 1&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\H ：完整的主机名称
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\h ：仅取主机名中的第一个名字
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\t ：显示时间为24小时格式，如：HH：MM：SS
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\T ：显示时间为12小时格式
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\A ：显示时间为24小时格式：HH：MM
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\u ：当前用户的账号名称
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\v ：BASH的版本信息
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\w ：完整的工作目录名称
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\W ：利用basename取得工作目录名称，只显示最后一个目录名
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\# ：下达的第几个命令
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;\$ ：提示字符，如果是root用户，提示符为 # ，普通用户则为 $
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="修改-bashrc-文件"&gt;&lt;a href="#%e4%bf%ae%e6%94%b9-bashrc-%e6%96%87%e4%bb%b6" class="header-anchor"&gt;&lt;/a&gt;修改 &lt;code&gt;~/.bashrc&lt;/code&gt; 文件
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;如果 &lt;code&gt;~/.bashrc&lt;/code&gt; 文件中无内容&lt;/strong&gt;，则直接在 &lt;code&gt;~/.bashrc&lt;/code&gt; 文件中写入：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;PS1='[\033[01;32m]\u@\h[\033[00m]\n[\033[01;34m]\w[\033[00m]\$'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;然后运行：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;source ~/.bashrc&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如果 &lt;code&gt;~/.bashrc&lt;/code&gt; 文件中已有内容&lt;/strong&gt;，则先打开 &lt;code&gt;.bashrc&lt;/code&gt; 文件，查看是否存在 &lt;code&gt;force_color_prompt=yes&lt;/code&gt; 行。然后，删除其前面的注释（&lt;code&gt;#&lt;/code&gt; 符号）并保存文件（如果该行存在）。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/02/image-1024x694.png"&gt;&lt;/p&gt;
&lt;p&gt;查找定义 &lt;code&gt;PS1&lt;/code&gt; 变量的行。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/02/image-1-1024x411.png"&gt;&lt;/p&gt;
&lt;p&gt;接下来定义新的 &lt;code&gt;PS1&lt;/code&gt; 变量。但是，为了安全起见，我们将其注释掉，这样如果我们搞砸了，我们可以随时参考它。&lt;/p&gt;
&lt;p&gt;然后，我们将通过添加以下行来创建一个新的 &lt;code&gt;PS1&lt;/code&gt; 变量，该变量会为您的 Linux 终端提示符着色。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PS1=&amp;#39;\&amp;amp;#91;\033&amp;amp;#91;1;32m\]\u\&amp;amp;#91;\033&amp;amp;#91;1;37m\]@\&amp;amp;#91;\033&amp;amp;#91;1;36m\]\h\&amp;amp;#91;\033&amp;amp;#91;00m\]:\&amp;amp;#91;\033&amp;amp;#91;1;34m\]\w\&amp;amp;#91;\033&amp;amp;#91;00m\]\$ &amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="../../images/2025/02/image-2-1024x410.png"&gt;&lt;/p&gt;
&lt;p&gt;然后运行：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;source ~/.bashrc&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="常见问题"&gt;&lt;a href="#%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98" class="header-anchor"&gt;&lt;/a&gt;常见问题
&lt;/h2&gt;&lt;p&gt;如果没有正常加载效果，则检查以下文件，确保它们没有覆盖 &lt;code&gt;PS1&lt;/code&gt;：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/profile&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;~/.bash_profile&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;~/.profile&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;~/.bash_aliases&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/bash.bashrc&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="参考配置"&gt;&lt;a href="#%e5%8f%82%e8%80%83%e9%85%8d%e7%bd%ae" class="header-anchor"&gt;&lt;/a&gt;参考配置
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PS1=&amp;#39;\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;32m\]\h\[\033[00m\] \[\033[01;36m\][\D{%Y-%m-%d} \t]\[\033[01;37m\] : \[\033[01;33m\]\w\[\033[00m\]\n\[\033[01;34m\]\$\[\033[00m\] &amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;PS1=&amp;#34;\[\033[01;31m\]\u\[\033[00m\]@\[\033[01;32m\]\h\[\033[00m\][\[\033[01;33m\]\t\[\033[00m\]]:\[\033[01;34m\]\w\[\033[00m\]\n$ &amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="参考文章"&gt;&lt;a href="#%e5%8f%82%e8%80%83%e6%96%87%e7%ab%a0" class="header-anchor"&gt;&lt;/a&gt;参考文章
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://blog.csdn.net/lingeio/article/details/94559587" target="_blank" rel="noopener"
 &gt;Linux命令行提示符颜色格式设置_kali命令提示符只有白色-CSDN博客&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://cn.linux-console.net/?p=34438" target="_blank" rel="noopener"
 &gt;如何在 Linux 上更改 Bash Shell 提示符的颜色&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>