MySQL 安装、加固与远程访问
MySQL 是一个流行的开源关系型数据库管理系统(RDBMS),使用 SQL 操作数据,数据以表、行、列形式存储。本节详细记录了 MySQL 的安装与加固的完整步骤(CentOS / Rocky 版本),以及怎么配置远程访问。
一、MySQL 安装
启用 MySQL 官方仓库
bash
dnf -y install https://repo.mysql.com/mysql84-community-release-el8-1.noarch.rpm
MySQL 常用有 5.7 和 8.0 版本,默认下载 8.0;如果需要下载 5.7,需要提前切换:
bash
dnf install -y yum-utils
# 禁用 8.0 仓库
yum-config-manager --disable mysql80-community
# 启用 5.7 仓库
yum-config-manager --enable mysql57-community
安装 MySQL
bash
dnf install -y mysql-community-server
启动服务并设置开机自启
bash
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
注意 :CentOS / RHEL 上服务名是
mysqld;Ubuntu / Debian 上是mysql。
查看临时密码
安装以后需要先获取初始临时密码,再登录 MySQL 修改密码:
bash
grep -i password /var/log/mysqld.log
登录并修改密码
bash
mysql -uroot -p
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysql@123';
FLUSH PRIVILEGES; -- 刷新一下
修改以后可以重新登录一下,然后用 show databases 检验:
bash
mysql -uroot -p
-u表示用户,-p表示输入密码。
二、初始化安装配置
bash
mysql_secure_installation
交互项说明:
| 交互项 | 建议选择 | 说明 |
|---|---|---|
| 是否启用密码强度检查(validate_password) | 新手可先选 N | 选 N 可设置简单密码,方便练习;生产环境建议选 Y 并设置强密码 |
| 设置 root 密码 | 输入并确认 | 需牢记,后续登录使用 |
| 删除匿名用户 | Y | 提高安全性 |
| 禁止 root 远程登录 | Y | 只允许本地登录更安全 |
| 删除测试数据库 | Y | 减少冗余与风险 |
| 重新加载权限表 | Y | 使配置立即生效 |
三、远程访问配置
1. 修改 MySQL 绑定地址
bash
# CentOS / RHEL
vim /etc/my.cnf
# Ubuntu / Debian
vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到或添加:
ini
bind-address = 0.0.0.0 # 表示允许任何主机访问,也可以设置成特定 IP
配置更改后需要重新启动服务:
bash
# CentOS / RHEL
systemctl restart mysqld
# Ubuntu / Debian
systemctl restart mysql
2. 创建远程用户
修改配置文件以后,我们不能直接让远程用户获取 root 账号登录,所以需要创建一个用户账号:
sql
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'Mysql@123';
注:
'remote_user'@'%':允许从任何主机连接。remote_user表示用户名;%表示任何主机可访问。IDENTIFIED BY设置密码。
3. 放行防火墙端口
设置完毕以后,还要防止防火墙阻拦 MySQL 端口,需要放行 3306 端口:
bash
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
4. 远程连接测试
在数据库服务器创建远程用户后,远程用户又该怎么连接呢?只需要比本机登录多一个 -h 参数即可:
bash
mysql -h 部署服务器IP -u remote_user -p
输入密码后即可登录,说明远程访问配置成功。