在RHEL 9.0环境下搭建MySQL 8.0

在RHEL 9.0环境中搭建MySQL 8.0

安装MySQL服务器软件包

要在RHEL 9.0系统中安装MySQL 8.0服务器,可执行以下命令:
```font style="color:rgb(21, 21, 21);"
sudo dnf install mysql-server

若遇到报错情况,可尝试使用另一种安装命令:  
```font style="color:rgb(21, 21, 21);"
sudo yum install mysql-server --nogpgcheck

检查安装情况

验证MySQL是否成功安装,运行以下命令查看版本:

mysql --version

启动与验证MySQL服务

  • 启动mysqld服务:
    font style="color:rgb(21, 21, 21);"
    systemctl start mysqld.service
  • 设置开机自启:
    font style="color:rgb(21, 21, 21);"
    systemctl enable mysqld.service
  • 验证服务状态:
    sudo systemctl status mysqld.service

安全性建议

为提升MySQL安装后的安全性,可运行以下命令:

mysql_secure_installation

该脚本会引导完成一系列安全设置,包括:
- 为root账户设置密码
- 删除匿名用户
- 禁止远程root登录(除本地主机外)

若使用MySQL 8.3版本,root账户通常会有临时密码,可通过查看日志文件获取,命令如下:

sudo grep 'A temporary password is generated' /var/log/mysqld.log | tail -1

获取临时密码后,再次运行mysql_secure_installation来设置密码。

客户端连接MySQL

通过客户端连接MySQL的命令格式为:

mysql -h [服务器IP或主机名] -u [用户名] -p[密码] -P [端口]

MySQL相关文件存储位置

  • 安装目录:/usr/local/mysql/
  • 数据目录:/var/lib/mysql/
  • 配置文件:/etc/my.cnf
  • 日志目录:/var/log/
  • 临时文件目录:/tmp/

外部无法连接MySQL服务器的处理办法

确认防火墙开放端口

  • CentOS/RHEL系统
    查看3306端口状态:
    firewall-cmd --list-ports | grep 3306
    开放3306端口并重启防火墙:
    sudo firewall-cmd --add-port=3306/tcp --permanent
    sudo firewall-cmd --reload
  • Ubuntu/Debian系统
    查看3306端口状态:
    sudo ufw status | grep 3306
    开放3306端口:
    sudo ufw allow 3306

处理MySQL仅监听Unix Socket的情况

若怀疑MySQL仅监听Unix Socket,可使用以下命令尝试登录:

mysql -u root -p --protocol=socket

若能登录,说明确实如此。此时需修改MySQL配置文件(通常为/etc/mysql/mysql.conf.d/mysqld.cnf/etc/my.cnf),在[mysqld]部分确保:

skip-networking = OFF     # 确保关闭(或删除此行)
bind-address = 0.0.0.0    # 允许所有IP连接(或指定服务器IP)

修改后重启MySQL服务:

sudo systemctl restart mysqld.service

MySQL用户权限限制

在本地连接MySQL后,执行以下命令查看用户主机访问限制:

SELECT Host, User FROM mysql.user;

若用户仅允许从localhost连接,需授权远程访问,命令如下:

GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码';
FLUSH PRIVILEGES;
版权声明:程序员胖胖胖虎阿 发表于 2025年6月20日 下午6:50。
转载请注明:

在RHEL 9.0环境下搭建MySQL 8.0

| 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...