RHEL 9.0 安装 MySQL 8.0
<p><font style="color: rgba(21, 21, 21, 1)">RHEL 9.0 安装 MySQL 8.0</font></p><ol>
<li><font style="color: rgba(21, 21, 21, 1)">安装 MySQL 服务器软件包:</font><code><font style="color:rgb(21, 21, 21);">sudo dnf install mysql-server</font></code></li>
</ol>
<p>报错处理:</p>
<p><img src="https://img2024.cnblogs.com/blog/3645091/202505/3645091-20250522114432171-1687346839.png" alt="image" loading="lazy"></p>
<p>使用 <code>sudo yum install mysql-server --nogpgcheck</code>命令</p>
<ol start="2">
<li><font style="color: rgba(21, 21, 21, 1)">检查安装:</font><code>mysql --version</code></li>
</ol>
<p><img src="https://img2024.cnblogs.com/blog/3645091/202505/3645091-20250522114432144-360261268.png" alt="image" loading="lazy"></p>
<ol start="3">
<li><font style="color: rgba(21, 21, 21, 1)">启动mysqld服务:</font><code><font style="color:rgb(21, 21, 21);">systemctl start mysqld.service</font></code></li>
</ol>
<p>如果要开机启动:<code>systemctl enable mysqld.service</code></p>
<ol start="4">
<li>验证状态<code>sudo systemctl status mysqld.service</code></li>
</ol>
<p><img src="https://img2024.cnblogs.com/blog/3645091/202505/3645091-20250522114432178-97817883.png" alt="image" loading="lazy"></p>
<ol start="5">
<li>建议:要在安装 MySQL 时提高安全性,请运行以下命令:<code>mysql_secure_installation</code></li>
</ol>
<p>该脚本会提示过程中的每一步。该脚本可通过以下方法提高安全性:</p>
<pre><code>- 为 root 帐户设置密码
- 删除匿名用户
- 禁止远程 root 登录(在本地主机之外)
</code></pre>
<p>使用 MySQL 8.3 版本时, 保护策略稍有不同。root 帐户通常会附带一个临时密码。可以从 MySQL 日志文件中检索它,如下所示:</p>
<p><code>sudo grep 'A temporary password is generated' /var/log/mysqld.log | tail -1</code></p>
<p><img src="https://img2024.cnblogs.com/blog/3645091/202505/3645091-20250522114432135-1600868002.png" alt="image" loading="lazy"></p>
<p>再次运行<code>mysql_secure_installation</code></p>
<p><img src="https://img2024.cnblogs.com/blog/3645091/202505/3645091-20250522114432178-1191256580.png" alt="image" loading="lazy">此处输入刚刚的密码</p>
<ol start="6">
<li>客户端连接mysql</li>
</ol>
<p><code>mysql -h [服务器IP或主机名] -u [用户名] -p[密码] -P [端口]</code></p>
<ol start="7">
<li>文件存的通常位置
<ul>
<li>安装目录:<code>/usr/local/mysql/</code></li>
<li>数据目录:<code>/var/lib/mysql/</code></li>
<li>配置文件:<code>/etc/my.cnf</code></li>
<li>日志目录:<code>/var/log/</code></li>
<li>临时文件目录:<code>/tmp/</code></li>
</ul>
</li>
</ol>
<p><strong>外部无法连接到mysql服务器处理办法</strong></p>
<ol>
<li>确认防火墙是否开放端口:</li>
</ol>
<pre><code class="language-bash"># CentOS/RHEL
firewall-cmd --list-ports | grep 3306
sudo firewall-cmd --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
# Ubuntu/Debian
sudo ufw status | grep 3306
sudo ufw allow 3306
</code></pre>
<p>确保端口开放:</p>
<pre><code class="language-bash">sudo ufw allow 3306 # Ubuntu
sudo firewall-cmd --add-port=3306/tcp --permanent && sudo firewall-cmd --reload# CentOS
</code></pre>
<ol start="2">
<li>MySQL 仅监听 Unix Socket</li>
</ol>
<pre><code class="language-bash">mysql -u root -p --protocol=socket
</code></pre>
<p><font style="color: rgba(64, 64, 64, 1)">如果能登录,说明 MySQL 仅允许 Socket 连接。</font></p>
<p><font style="color: rgba(64, 64, 64, 1)">修改 MySQL 配置文件(通常是 </font><code>**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">/etc/mysql/mysql.conf.d/mysqld.cnf</font>**</code><font style="color: rgba(64, 64, 64, 1)"> 或 </font><code>**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">/etc/my.cnf</font>**</code><font style="color: rgba(64, 64, 64, 1)">):</font></p>
<pre><code class="language-plain">
skip-networking = OFF # 确保关闭(或删除此行)
bind-address = 0.0.0.0 # 允许所有 IP 连接(或指定服务器IP)
</code></pre>
<p><font style="color: rgba(64, 64, 64, 1)">然后重启 MySQL</font></p>
<pre><code class="language-bash">sudo systemctl restart mysqld.service
</code></pre>
<p><font style="color: rgba(64, 64, 64, 1)">再次检查端口:</font></p>
<ol start="3">
<li>MySQL 用户权限限制</li>
</ol>
<p>本地连接mysql,执行:</p>
<pre><code class="language-sql">SELECT Host, User FROM mysql.user;
</code></pre>
<p><font style="color: rgba(64, 64, 64, 1)">如果用户仅允许 </font><code>**<font style="color:rgb(64, 64, 64);background-color:rgb(236, 236, 236);">localhost</font>**</code><font style="color: rgba(64, 64, 64, 1)">,需授权远程访问:</font></p>
<pre><code class="language-sql">GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;
</code></pre><br><br>
来源:https://www.cnblogs.com/kinyng/p/18890983
頁:
[1]