在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;
相关文章
暂无评论...